assets/s2disqlite.php /// Art: Include /// Inhalt: Klasse dbms /// Beschreibung: Datenbanklayer SQLite /// Benötigt: config.php, structure.sql /// CCML-Parsing: nein /// ////////////////////////////////////////////////////////////////////////////////////////// /// /// Letzte Änderungen: /// 10.02.2009 Tabelle version wird zu config /// 22.09.2009 split -> explode /// ////////////////////////////////////////////////////////////////////////////////////////// ///<22.09.2009/6.0.4.24/> if (!defined('SHOP_TO_DATE')) die('Forbidden'); // Klasse für Datenbank Zugriff über SQLite class dbms { var $file; var $db_connect_id = null; // Konstruktor stellt Datenbakverbindung her function dbms($db_file) { $this->file = $db_file; $this->db_connect_id = sqlite_open($this->file); if (!$this->db_connect_id) die(CC_RESSOURCE_SQLITEERROR); } // Destructor function dbms_close() { sqlite_close($this->db_connect_id); $this->db_connect_id = null; } // Escapen function escape_string($s) { return sqlite_escape_string($s); } // SQL Befehl zum ermitteln der Tabellenanzahl function sql_tables() { return "SELECT name FROM sqlite_master WHERE type='table' and name LIKE '".TABLE_PREFIX."%'"; } function sql_table_config() { return "SELECT name FROM sqlite_master WHERE type='table' and name LIKE '".TABLE_PREFIX."config'"; } // Namen der Felder einer Tabelle function sql_get_fieldnames($table) { $sql = "SELECT sql FROM sqlite_master WHERE type='table' and tbl_name = '".TABLE_PREFIX."$table'"; $result = $this->sql_query($sql); $row = $this->sql_fetch_row($result); $sql = substr(strstr($row->sql,'('), 1); $sql = preg_replace('/\([\d,]+\)/', '', $sql); $fieldnames = array(); foreach(explode(',', $sql) as $field) { $fieldname = substr($field, 0, strpos($field, ' ')); if ($fieldname == 'PRIMARY') break; $fieldnames[] = str_replace('"', '', $fieldname); } return $fieldnames; } // Abfrage function sql_query($sql) { if (!$result = sqlite_query($sql, $this->db_connect_id)) { if (defined('DEBUG')) script_die('Cannot query the database '.$sql , __LINE__, __FILE__, $sql, sqlite_error_string(sqlite_last_error($this->db_connect_id))); else die(CC_RESSOURCE_QUERYERROR); } else return $result; } // Eine Abfrageergebnisse einlesen function sql_fetch_row($result) { return sqlite_fetch_object($result); } // Eine Abfrageergebnisse einlesen function sql_fetch_array($result) { return sqlite_fetch_array($result); } // Anzahl der Reihen im Abfrageergebnis function sql_num_rows($query_id) { return sqlite_num_rows($query_id); } // Inser ID function sql_insert_id() { return sqlite_last_insert_rowid($this->db_connect_id); } // Abfrageergebnis freigeben function sql_free_result($result) { // Nothing to do } // Tabellen löschen function drop_tables($tablenames) { foreach($tablenames as $tablename) $this->sql_query("DROP TABLE $tablename"); } } ?>