From dac334b46e3f2d939f8d106b98dc82a102e72423 Mon Sep 17 00:00:00 2001 From: Andreas Unterkircher Date: Sat, 9 Jun 2007 06:37:44 +0000 Subject: [PATCH] general function to check if a table exists general function to execute a query without handling results git-svn-id: file:///var/lib/svn/phpfspot/trunk@64 fa6a889d-dae6-447d-9e79-4ba9a3039384 --- phpfspot.class.php | 17 +++++++++++++++++ phpfspot_db.php | 27 ++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/phpfspot.class.php b/phpfspot.class.php index de2adc0..d62be69 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -19,7 +19,10 @@ class PHPFSPOT { $this->cfg = new PHPFSPOT_CFG; $this->db = new PHPFSPOT_DB(&$this, $this->cfg->fspot_db); + $this->cfg_db = new PHPFSPOT_DB(&$this, $this->cfg->phpfspot_db); + $this->check_config_table(); + $this->tmpl = new PHPFSPOT_TMPL($this); $this->get_tags(); @@ -343,6 +346,20 @@ class PHPFSPOT { } // get_meta_informations() + public function check_config_table() + { + // if the config table doesn't exist yet, create it + if(!$this->cfg_db->db_check_table_exists("images")) { + $this->cfg_db->db_exec(" + CREATE TABLE images ( + img_idx int primary key, + img_md5 varchar(32) + ) + "); + } + + } // check_config_table + } ?> diff --git a/phpfspot_db.php b/phpfspot_db.php index 6c86563..585e559 100644 --- a/phpfspot_db.php +++ b/phpfspot_db.php @@ -110,6 +110,24 @@ class PHPFSPOT_DB { } // db_query() + /** + * PHPFSPOT_DB database query & execute + * + * This function will execute a SQL query and return nothing. + */ + public function db_exec($query = "") + { + if($this->getConnStatus()) { + + if(($result = sqlite3_exec($this->db, $query)) === false) + $this->ThrowError($this->getLastError()); + + } + else + $this->ThrowError("Can't execute query - we are not connected!"); + + } // db_exec() + public function db_fetch_object(&$resource) { return sqlite3_fetch_array($resource); @@ -178,11 +196,10 @@ class PHPFSPOT_DB { public function db_check_table_exists($table_name = "") { if($this->getConnStatus()) { - $result = $this->db_query("SHOW TABLES"); - $tables_in = "Tables_in_". MYSQL_DB; - - while($row = $result->fetchRow()) { - if($row->$tables_in == $table_name) + + $result = $this->db_query("SELECT name FROM sqlite_master WHERE type='table'"); + while($table = $this->db_fetch_object($result)) { + if($table['name'] == $table_name) return true; } return false; -- 2.17.1