tbrehm
2012-04-16 84569173c9a21ebab5ecdb662d9b4fb98b7c336b
interface/lib/classes/db_mysql.inc.php
@@ -33,6 +33,8 @@
   private $dbUser = '';         // database authorized user
   private $dbPass = '';         // user's password
   private $dbCharset = '';      // what charset comes and goes to mysql: utf8 / latin1
   private $dbNewLink = false;    // Return a new linkID when connect is called again
   private $dbClientFlags = 0;    // MySQL Client falgs
   private $linkId = 0;         // last result of mysql_connect()
   private $queryId = 0;         // last result of mysql_query()
   private $record   = array();      // last record fetched
@@ -51,11 +53,9 @@
      $this->dbUser = $conf['db_user'];
      $this->dbPass = $conf['db_password'];
      $this->dbCharset = $conf['db_charset'];
      $this->dbNewLink = $conf['db_new_link'];
      $this->dbClientFlags = $conf['db_client_flags'];
      //$this->connect();
   }
   public function __destruct() {
      $this->closeConn();
   }
   /**  Error handler */
@@ -73,7 +73,7 @@
   public function connect()
   {
      if($this->linkId == 0){
         $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
         $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbNewLink, $this->dbClientFlags);
         if(!$this->linkId){
            $this->updateError('DB::connect()<br />mysql_connect');
            return false;
@@ -298,8 +298,20 @@
   public function datalogInsert($tablename, $insert_data, $index_field) {
      global $app;
      
      if(is_array($insert_data)) {
         $key_str = '';
         $val_str = '';
         foreach($insert_data as $key => $val) {
            $key_str .= "`".$key ."`,";
            $val_str .= "'".$this->quote($val)."',";
         }
         $insert_data_str = '('.$key_str.') VALUES ('.$val_str.')';
      } else {
         $insert_data_str = $insert_data;
      }
      $old_rec = array();
      $this->query("INSERT INTO $tablename $insert_data");
      $this->query("INSERT INTO $tablename $insert_data_str");
      $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);
@@ -308,11 +320,25 @@
   }
   
   //** Updates a record and saves the changes into the datalog
   public function datalogUpdate($tablename, $update_data, $index_field, $index_value) {
   public function datalogUpdate($tablename, $update_data, $index_field, $index_value, $force_update = false) {
      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'");
      if($force_update == true) {
         $old_rec = array();
      } else {
         $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'");
      }
      if(is_array($update_data)) {
         $update_data_str = '';
         foreach($update_data as $key => $val) {
            $update_data_str .= "`".$key ."` = '".$this->quote($val)."',";
         }
      } else {
         $update_data_str = $update_data;
      }
      $this->query("UPDATE $tablename SET $update_data_str 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);