X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw%2Fapp%2Fdata%2Fimpl%2Fmw_mysql.php;h=4f8e41d9702232581165eeadbf4bdd5d996ef821;hb=61f37fc21cac669aa439d0681590f5ceccad3157;hp=3d146c4fa7d7a3fa6133fcadb4e37b13ecc43986;hpb=0ada6496e6c552c473a5816734b38896ccdd345b;p=mtweb diff --git a/mw/app/data/impl/mw_mysql.php b/mw/app/data/impl/mw_mysql.php index 3d146c4..4f8e41d 100644 --- a/mw/app/data/impl/mw_mysql.php +++ b/mw/app/data/impl/mw_mysql.php @@ -65,25 +65,38 @@ return $desc; } - function table_exists($table){ + function table_exists($table_name){ if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password); - $rst = $this->query("SHOW TABLES"); - while($v_rst = mysql_fetch_array($rst)){ - if(strcmp($v_rst[0], $table) == 0) return true; - } - mysql_free_result($rst); - return false; + $EXISTS = false; + try{ + $rst = $this->query("SHOW TABLES"); + while($v_rst = mysql_fetch_row($rst)){ + if($v_rst[0] == $table_name){ + $EXISTS = true; + break; + } + } + $this->free_result($rst); + } + catch(Exception $e){ + throw new Exception($this->exception_out("Impossible de savoir si la table existe")); + } + return $EXISTS; } function field_exists($table_name, $field_name){ - if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password); - $sql = "SHOW COLUMNS FROM `".$table_name."` LIKE ".$field_name; - $rst = $this->query($sql); - $exists = false; - $v_rst = $this->fetch_assoc($rst); - if($v_rst) $exists = true; - $this->free_result($rst); - return $exists; + if(!$this->link) $this->connect($this->host, $this->base, $this->user, $this->password); + if(!($desc = $this->desc_table($table_name))){ + throw new Exception($this->exception_out("Impossible de lire la description de la table")); + } + $EXISTS = false; + foreach($desc["attributs"] as $attribut_name => $attribut){ + if($field_name == $attribut_name){ + $EXISTS = true; + break; + } + } + return $EXISTS; } function query($query_string){