From b31c514ee2f1d25b4e5ff39bdef1765dbf14e106 Mon Sep 17 00:00:00 2001
From: jwarnier <jwarnier@ispconfig3>
Date: Thu, 19 Aug 2010 18:09:42 -0400
Subject: [PATCH] Fix typos.
---
server/lib/classes/db_mysql.inc.php | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 151 insertions(+), 19 deletions(-)
diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index bc26ac5..229b11e 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -41,7 +41,7 @@
var $errorNumber = 0; // last error number
var $errorMessage = ""; // last error message
var $errorLocation = "";// last error location
- var $show_error_messages = false;
+ var $show_error_messages = true;
// constructor
function db()
@@ -52,19 +52,22 @@
$this->dbName = $conf["db_database"];
$this->dbUser = $conf["db_user"];
$this->dbPass = $conf["db_password"];
+ $this->dbCharset = $conf['db_charset'];
//$this->connect();
}
// error handler
function updateError($location)
{
- $this->errorNumber = mysql_errno();
- $this->errorMessage = mysql_error();
+ global $app;
+ $this->errorNumber = mysql_errno($this->linkId);
+ $this->errorMessage = mysql_error($this->linkId);
$this->errorLocation = $location;
- if($this->errorNumber && $this->show_error_messages)
+ if($this->errorNumber && $this->show_error_messages && method_exists($app,'log'))
{
- echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
- flush();
+ // echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
+ $app->log($this->errorLocation." ".$this->errorMessage,LOGLEVEL_WARN);
+ //flush();
}
}
@@ -75,9 +78,11 @@
$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
if(!$this->linkId)
{
- $this->updateError('DB::connect()<br />mysql_connect');
+ $this->updateError('DB::connect()-> mysql_connect');
return false;
}
+ $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
+ $this->queryId = @mysql_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."'", $this->linkId);
}
return true;
}
@@ -90,11 +95,11 @@
}
if(!mysql_select_db($this->dbName, $this->linkId))
{
- $this->updateError('DB::connect()<br />mysql_select_db');
+ $this->updateError('DB::connect()-> mysql_select_db');
return false;
}
$this->queryId = @mysql_query($queryString, $this->linkId);
- $this->updateError('DB::query('.$queryString.')<br />mysql_query');
+ $this->updateError('DB::query('.$queryString.') -> mysql_query');
if(!$this->queryId)
{
return false;
@@ -132,7 +137,7 @@
function nextRecord()
{
$this->record = mysql_fetch_assoc($this->queryId);
- $this->updateError('DB::nextRecord()<br />mysql_fetch_array');
+ $this->updateError('DB::nextRecord()-> mysql_fetch_array');
if(!$this->record || !is_array($this->record))
{
return false;
@@ -163,7 +168,12 @@
// Check der variablen
function quote($formfield)
{
- return addslashes($formfield);
+ if(!$this->connect()){
+ $this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string');
+ return addslashes($formfield);
+ }
+
+ return mysql_real_escape_string($formfield, $this->linkId);
}
// Check der variablen
@@ -182,7 +192,8 @@
return $out;
}
-
+ /*
+ //* These functions are deprecated and will be removed.
function insert($tablename,$form,$debug = 0)
{
if(is_array($form)){
@@ -217,15 +228,136 @@
if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
}
}
+ */
+
+ public function diffrec($record_old, $record_new) {
+ $diffrec_full = array();
+ $diff_num = 0;
+
+ if(is_array($record_old) && count($record_old) > 0) {
+ foreach($record_old as $key => $val) {
+ // if(!isset($record_new[$key]) || $record_new[$key] != $val) {
+ if($record_new[$key] != $val) {
+ // Record has changed
+ $diffrec_full['old'][$key] = $val;
+ $diffrec_full['new'][$key] = $record_new[$key];
+ $diff_num++;
+ } else {
+ $diffrec_full['old'][$key] = $val;
+ $diffrec_full['new'][$key] = $val;
+ }
+ }
+ } elseif(is_array($record_new)) {
+ foreach($record_new as $key => $val) {
+ if(isset($record_new[$key]) && @$record_old[$key] != $val) {
+ // Record has changed
+ $diffrec_full['new'][$key] = $val;
+ $diffrec_full['old'][$key] = @$record_old[$key];
+ $diff_num++;
+ } else {
+ $diffrec_full['new'][$key] = $val;
+ $diffrec_full['old'][$key] = $val;
+ }
+ }
+ }
+
+ return array('diff_num' => $diff_num, 'diff_rec' => $diffrec_full);
+
+ }
+
+ //** 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;
+
+ // Insert backticks only for incomplete table names.
+ if(stristr($db_table,'.')) {
+ $escape = '';
+ } else {
+ $escape = '`';
+ }
+
+ $tmp = $this->diffrec($record_old, $record_new);
+ $diffrec_full = $tmp['diff_rec'];
+ $diff_num = $tmp['diff_num'];
+ unset($tmp);
+
+ // Insert the server_id, if the record has a server_id
+ $server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0;
+ if(isset($record_new["server_id"])) $server_id = $record_new["server_id"];
+
+
+ if($diff_num > 0) {
+ //print_r($diff_num);
+ //print_r($diffrec_full);
+ $diffstr = $app->db->quote(serialize($diffrec_full));
+ $username = $app->db->quote($_SESSION["s"]["user"]["username"]);
+ $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);
+ }
+
+ return true;
+ }
+
+ //** Inserts a record and saves the changes into the datalog
+ public function datalogInsert($tablename, $insert_data, $index_field) {
+ global $app;
+
+ $old_rec = array();
+ $this->query("INSERT INTO $tablename $insert_data");
+ $index_value = $this->insertID();
+ $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+ $this->datalogSave($tablename, 'INSERT', $index_field, $index_value, $old_rec, $new_rec);
+
+ return $index_value;
+ }
+
+ //** Updates a record and saves the changes into the datalog
+ public function datalogUpdate($tablename, $update_data, $index_field, $index_value) {
+ global $app;
+
+ $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+ $this->query("UPDATE $tablename SET $update_data WHERE $index_field = '$index_value'");
+ $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+ $this->datalogSave($tablename, 'UPDATE', $index_field, $index_value, $old_rec, $new_rec);
+
+ return true;
+ }
+
+ //** Deletes a record and saves the changes into the datalog
+ public function datalogDelete($tablename, $index_field, $index_value) {
+ global $app;
+
+ $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
+ $this->query("DELETE FROM $tablename WHERE $index_field = '$index_value'");
+ $new_rec = array();
+ $this->datalogSave($tablename, 'DELETE', $index_field, $index_value, $old_rec, $new_rec);
+
+ return true;
+ }
- function closeConn() {
+ public function closeConn()
+ {
+ if($this->linkId)
+ {
+ mysql_close($this->linkId);
+ return true;
+ } else { return false; }
+ }
- }
-
- function freeResult() {
-
-
- }
+ public function freeResult($query)
+ {
+ if(mysql_free_result($query))
+ {
+ return true;
+ } else {
+ return false;
+ }
+ }
function delete() {
--
Gitblit v1.9.1