From 1d8f7f155aadf209eaa4e0ca0805b428b9887b6a Mon Sep 17 00:00:00 2001 From: nveid <nveid@ispconfig3> Date: Fri, 16 Dec 2011 02:56:46 -0500 Subject: [PATCH] Fixes to allow the serverside to work correctly with mysqli, updating the datalog, and make changes to mysql users in the mysql plugin module. --- server/lib/classes/db_mysql.inc.php | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 27a62bd..b9c3108 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -30,7 +30,7 @@ class db extends mysqli { - private $dbHost = ''; // hostname of the MySQL server + protected $dbHost = ''; // hostname of the MySQL server private $dbName = ''; // logical database name on that server private $dbUser = ''; // database authorized user private $dbPass = ''; // user's password @@ -48,28 +48,33 @@ public $show_error_messages = false; // false in server, true in interface // constructor - public function __construct() { - global $conf; - $this->dbHost = $conf['db_host']; - $this->dbName = $conf['db_database']; - $this->dbUser = $conf['db_user']; - $this->dbPass = $conf['db_password']; + public function __construct($host = NULL , $user = NULL, $pass = NULL, $database = NULL) { + global $app, $conf; + + $this->dbHost = $host ? $host : $conf['db_host']; + $this->dbName = $database ? $database : $conf['db_database']; + $this->dbUser = $user ? $user : $conf['db_user']; + $this->dbPass = $pass ? $pass : $conf['db_password']; $this->dbCharset = $conf['db_charset']; $this->dbNewLink = $conf['db_new_link']; $this->dbClientFlags = $conf['db_client_flags']; - parent::__construct($conf['db_host'], $conf['db_user'],$conf['db_password'],$conf['db_database']); + + parent::__construct($this->dbHost, $this->dbUser, $this->dbPass,$this->dbName); if ($this->connect_error) { $this->updateError('DB::__construct'); - return false; } parent::query( 'SET NAMES '.$this->dbCharset); parent::query( "SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'"); - } public function __destruct() { $this->close(); // helps avoid memory leaks, and persitent connections that don't go away. } + + /* This allows our private variables to be "read" out side of the class */ + public function __get($var) { + return isset($this->$var) ? $this->$var : NULL; + } // error handler public function updateError($location) { @@ -89,8 +94,11 @@ // This right here will allow us to use the samefile for server & interface if($this->show_error_messages) { echo $error_msg; - } else if(method_exists($app, 'log')) { + } else if(is_object($app) && method_exists($app, 'log')) { $app->log($error_msg, LOGLEVEL_WARN); + } else { + /* This could be called before $app is ever declared.. In that case we should just spit out to error_log() */ + error_log($error_msg); } } } -- Gitblit v1.9.1