From 8cf78b31b28b9183579c7939b947e1f7e9f5c2fa Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Thu, 12 Jan 2012 04:54:19 -0500 Subject: [PATCH] Merged revisions 2812-2883 from staböe branch. --- server/lib/classes/db_mysql.inc.php | 52 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 15 deletions(-) diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 27a62bd..6269798 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 @@ -42,34 +42,39 @@ private $record = array(); // last record fetched private $autoCommit = 1; // Autocommit Transactions private $currentRow; // current row number - private $errorNumber = 0; // last error number + public $errorNumber = 0; // last error number public $errorMessage = ''; // last error message private $errorLocation = '';// last error location 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); } } } @@ -246,9 +254,23 @@ } - //** Function to fill the datalog with a full differential record. - public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new) { - global $app,$conf; + if($diff_num > 0) { + //print_r($diff_num); + //print_r($diffrec_full); + $diffstr = $app->db->quote(serialize($diffrec_full)); + if(isset($_SESSION)) { + $username = $app->db->quote($_SESSION['s']['user']['username']); + } else { + $username = 'admin'; + } + $dbidx = $primary_field.':'.$primary_id; + + if($action == 'INSERT') $action = 'i'; + if($action == 'UPDATE') $action = 'u'; + if($action == 'DELETE') $action = 'd'; + $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$db_table."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')"; + $app->db->query($sql); + } // Insert backticks only for incomplete table names. if(stristr($db_table,'.')) { -- Gitblit v1.9.1