当前位置:主页 > >

SQLite - 判断表是否存在(附php样例)

时间:2020-05-14 10:00:21 | 栏目: | 点击:

本文举例说明使用 SQLite3 数据库时,对表(Table)是否存在的判断思路,并用php举例操作说明。

1,如果表不存在的时候则创建
下面 sql 执行后首先判断 t_user 这张表是否存在,如果不存在则新建。

CREATE TABLE IF NOT EXISTS t_user(uid integer primary key,uname varchar(20),mobile varchar(20))

2,判断表是否存在
SELECT count(*) FROM sqlite_master WHERE type="table" AND name = "t_user"

下面是一段 php样例代码(这里使用了第三方的 SQLiteDB 库):
<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('SQLite.db');
      }
   }
   
   //创建或连接数据库
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully".PHP_EOL;
   }
   
   //创建表
   $sSQL = <<<EOF
CREATE TABLE IF NOT EXISTS t_user(uid integer primary key,uname varchar(20),mobile varchar(20));
EOF;
   
   $ret = $db->exec($sSQL);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Table(t_user) created successfully".PHP_EOL;
   }
   
   //判断表是否存在
   $sSQL = <<<EOF
SELECT count(*) as UDS_COUNT FROM sqlite_master WHERE type='table' AND name = 't_user';
EOF;

   $ret = $db->query($sSQL);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      $count = 0;
      while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      	$count = $row['UDS_COUNT'];
      }
      if($count>0){
        echo "Table(t_user) exist".PHP_EOL;
      }
      else{
      	echo "Table(t_user) not exist".PHP_EOL;
      }
   }
   
   //关闭数据库
   $db->close();
?>

执行结果:

Opened database successfully
Table(t_user) created successfully
Table(t_user) exist


您可能感兴趣的文章:

相关文章