db_host=$db_host; $this->db_user=$db_user; $this->db_passw=$db_passw; $this->db_name=$db_name; $this->terminal_report=$terminal_report; $this->finalprocedure=$finalprocedure; // $this->is_debug_mode=$is_debug_mode; $this->is_debug_mode=true; $this->is_transaction=$is_transaction; } // Функция соединения с базой данных function db_connect() { if (!$this->is_connected) { $this->db_link=@mysql_connect($this->db_host,$this->db_user,$this->db_passw); if (!$this->db_link) { if ($this->is_debug_mode) echo "Error debug: False connect to DB with HOST=$this->db_host, USER=$this->db_user
"; if (function_exists($this->finalprocedure)) { $error_procedure=$this->finalprocedure; $error_procedure(); } die($this->terminal_report); } else { $this->is_connected=true; @mysql_query("SET NAMES cp1251"); } } } // Функция выбора базы данных function db_select() { if ($this->is_connected) { if (!@mysql_select_db($this->db_name,$this->db_link)) { if ($this->is_debug_mode) echo "Error debug: ".@mysql_error($this->db_link)."
"; if (function_exists($this->finalprocedure)) { $error_procedure=$this->finalprocedure; $error_procedure(); } die($this->terminal_report); } $this->is_selected=true; } else { $this->db_connect(); $this->db_select(); } } // Функция выполнения запроса function db_query($query) { if ($this->is_connected) { if ($this->is_selected) { $result=@mysql_query($query,$this->db_link); if (!$result) { if ($this->is_debug_mode) echo "Error debug: ".@mysql_error($this->db_link)."
Query: $query
"; if (function_exists($this->finalprocedure)) { $error_procedure=$this->finalprocedure; $error_procedure(); } $this->db_rollback(); die($this->terminal_report); } else { unset($this->value); $this->value=array(); while($row = @mysql_fetch_array($result)) { $this->value[]=$row; unset($row); } @mysql_free_result($result); } } else { $this->db_select(); $this->db_query($query); } } else { $this->db_connect(); $this->db_select(); $this->db_query($query); } } // Функция получения идентификатора последней занесенной строки function insert_id() { return mysql_insert_id($this->db_link); } // Функция начала транзакции (BEGIN) function db_begin() { if ($this->is_transaction) { $this->db_query("BEGIN"); } } // Функция подтверждения транзакции (COMMIT) function db_commit() { if ($this->is_transaction) $this->db_query("COMMIT"); } // Функция отката транзакции (ROLLBACK) function db_rollback() { if ($this->is_transaction) $this->db_query("ROLLBACK"); } // Функция закрытия соединения с базой данных function db_disconnect() { if ($this->is_connected) { if (mysql_close($this->db_link)) { $this->db_link=0; $this->is_connected=false; unset($this->value); } else { if ($this->is_debug_mode) echo "Error debug: ".@mysql_error($this->db_link); if (function_exists($this->finalprocedure)) { $error_procedure=$this->finalprocedure; $error_procedure(); } die($this->terminal_report); } } } // Функция пакетного добавления данных в таблицу // запрос составляется из значений массива $val [поле,значение] function insert_values($table_name,$val) { while(list($key,$value) = each($val)) { $fields_str.="$key,"; if (is_int($value)) $values_str.= "$value,"; else if (!get_magic_quotes_gpc()) $values_str .= "'" . addslashes($value) . "',"; else $values_str.= "'$value',"; } $fields_str = substr($fields_str,0,-1); $values_str = substr($values_str,0,-1); $query = "INSERT INTO $table_name ($fields_str) VALUES ($values_str)"; $this->db_query($query); } // Функция пакетного обновления данных в таблице, // запрос составляется из значений массива $val [поле,значение,условие] function update_values($table_name,$val,$condition="") { while(list($key,$value) = each($val)) { if (is_int($value)) $values_str.= "$key=$value,"; else if (!get_magic_quotes_gpc()) $values_str .= "$key='" . addslashes($value) . "',"; else $values_str.= "$key='$value',"; } $values_str = substr($values_str,0,-1); $query = "UPDATE $table_name SET $values_str"; if ($condition != "") $query.= " WHERE $condition"; $this->db_query($query); } } ]*>) '", "' ($)'", "' (\<\/)'", "'([ \n«\(\-\>])[\"“„]'", "'(^)[\"“„]'", "'[\"”„]($)'", "'[\"”„]([\- \n\.…,:;!\?\)»\<])'", "'(<[^>]*)[«»]([^<]*>)'", "'(«[^»]*)[«]([^«]*»)'", "'(«[^»]*)[»]([^«]*»)'", "'(<.*)[’](.*>)'", "'ё'", "'Ё'", "'(г.) ([A-Za-zА-я])'", "'([ \>][A-Za-zА-Яа-я]{1,2}) ([A-Za-zА-я0-9«])'", "'([0-9]) ([0-9])'", "'([0-9]) ([A-Za-zА-я])'", "'(^[A-Za-zА-Яа-я]{1,2}) ([A-Za-zА-я0-9«])'", "'(^[А-Яа-я]{1,2}) ([А-Яа-я0-9])'", "'([§©®№])([0-9A-Za-zА-я])'", "'([§©®№]) '", "'\-\-'", "'–'", "'[\-—]([0-9])'", "'([^ ])—([^ ])'", "' - '", "' —'", "' ([%^])'", "'(<[^>]*)[«»]([^<]*>)'"); $replace = array ("\\1", "…", "\\1\\2", " \\1\\2", "\\1\\2 \\3", "\\1\\2", "\\1", "\\1", "\\1", "\\1", "\\1", "\\1«", "\\1«", "»\\1", "»\\1", "\\1\"\\2", "\\1«\\2", "\\1»\\2", "\\1\'\\2", "е", "Е", "\\1 \\2", "\\1 \\2", "\\1 \\2", "\\1 \\2", "\\1 \\2", "\\1 \\2", "\\1 \\2", "\\1 ", "—", "—", "–\\1", "\\1 — \\2", " — ", " —", "\\1", "\\1\"\\2"); $txt = preg_replace ($search, $replace, $txt); $symb = array ("'—'", "'«'", "'»'", "'“'", "'„'", "'§'", "'©'", "'®'", "'°'", "'…'", "'‘'", "'’'", "'\''", "'™'", "'±'", "'№'"); $codes = array ("—", "«", "»", "“", "„", "§", "©", "®", "°", "…", "‘", "’", "’", "™", "±", "№"); $txt = preg_replace ($symb, $codes, $txt); $txt = str_replace ("left»", "left\"", $txt); $txt = str_replace ("center»", "center\"", $txt); $txt = str_replace ("right»", "right\"", $txt); return $txt; } // function process //class } ?>