assets/s2dimysql.php /// Art: Include /// Inhalt: Klasse dbms /// Beschreibung: Datenbanklayer MySql /// Benötigt: config.php, structure.sql /// CCML-Parsing: nein /// ////////////////////////////////////////////////////////////////////////////////////////// /// /// Letzte Änderungen: /// 10.02.2009 Tabelle version wird zu config /// 25.02.2009 Mysql Syntax angepasst für SHOW TABLES /// 28.07.2009 Zeitnehmer und SQL Logger eingebaut /// ////////////////////////////////////////////////////////////////////////////////////////// ///<28.07.2009/6.0.4.21/> if (!defined('SHOP_TO_DATE')) die('Forbidden'); // Klasse für Datenbank Zugriff über MYSQL class dbms { var $server; var $dbname; var $user; var $password; var $db_connect_id = null; // Konstruktor stellt Datenbankverbindung her function dbms($db_host, $db_user, $db_password, $db_name) { $this->server = $db_host; $this->dbname = $db_name; $this->user = $db_user; $this->password = $db_password; // Versuch Verbindung herzustellen $this->db_connect_id = mysql_connect($this->server, $this->user, $this->password); if ($this->db_connect_id) { // Versuch Datenbank auszuwählen if (!mysql_select_db($this->dbname)) { // Versuchen Datenbank anzulegen if (function_exists('mysql_create_db') && @mysql_create_db($this->dbname)) { if (!mysql_select_db($this->dbname)) { mysql_close($this->db_connect_id); die(str_replace('[d]', $this->dbname, CC_RESSOURCE_DBERROR)); } } else { mysql_close($this->db_connect_id); die(str_replace('[d]', $this->dbname, CC_RESSOURCE_DBERROR)); } } } else die(CC_RESSOURCE_CONNECTERROR); } // Destructor function dbms_close() { mysql_close($this->db_connect_id); $this->db_connect_id = null; } // Escapen function escape_string($s) { return mysql_real_escape_string($s); } // SQL Befehl zum ermitteln der Tabellenanzahl function sql_table_config() { return "SHOW TABLES FROM `$this->dbname` LIKE '".TABLE_PREFIX."config'"; } // SQL Befehl zum ermitteln der Tabellenanzahl function sql_tables() { return "SHOW TABLES FROM `$this->dbname` LIKE '".TABLE_PREFIX."%'"; } // Namen der Felder einer Tabelle function sql_get_fieldnames($table) { $result = $this->sql_query("SHOW COLUMNS FROM ".TABLE_PREFIX."$table", $this->db_connect_id); $fieldnames = array(); while ($row = $this->sql_fetch_row($result)) array_push($fieldnames, $row->Field); return $fieldnames; } // Abfrage function sql_query($sql) { if (LOG_MYSQL) { save_to_file(FILE_MYSQLLOG, microtime()."\n".$sql."\n"); $start_time = microtime(true); } if (!$result = mysql_query($sql, $this->db_connect_id)) { if (LOG_MYSQL) save_to_file(FILE_MYSQLLOG, "\nCannot query the database!\n"); if (defined('DEBUG')) script_die('Cannot query the database ', __FILE__, __LINE__, $sql, mysql_error($this->db_connect_id)); else die(CC_RESSOURCE_QUERYERROR); } else { if (LOG_MYSQL) { $end_time = microtime(true); $diff = number_format($end_time - $start_time, 5, '.', ''); save_to_file(FILE_MYSQLLOG, "$diff s\n\n"); } return $result; } } // Eine Abfrageergebnisse einlesen function sql_fetch_row($result) { return mysql_fetch_object($result); } // Eine Abfrageergebnisse einlesen function sql_fetch_array($result) { return mysql_fetch_array($result); } // Anzahl der Reihen im Abfrageergebnis function sql_num_rows($query_id) { return mysql_num_rows($query_id); } // Insert ID function sql_insert_id() { return mysql_insert_id($this->db_connect_id); } // Abfrageergebnis freigeben function sql_free_result($result) { return mysql_free_result($result); } // Tabellen löschen function drop_tables($tablenames) { $this->sql_query("DROP TABLE ".implode(',', $tablenames)); } } ?>