检查MySQL表是否存在

2022-08-30 11:24:51

可能的重复:
MySQL检查表是否存在而不引发异常

我的项目中有一个动态mysql查询构建器,可以从不同的表中创建选择查询。
我需要检查当前处理表是否存在。
假设我的表是表 1、表 2 和表 3。我的代码是这样的:

<?php
for($i = 1 ; $i <= 3 ; $i++) {
   $this_table = 'table'.$i;
   $query = mysql_query("SELECT * FROM $this_table");
   // ...
}
?>

我该怎么做才能做这个检查(请告诉我最简单的方法)。


答案 1

更新的 mysqli 版本:

if ($result = $mysqli->query("SHOW TABLES LIKE '".$table."'")) {
    if($result->num_rows == 1) {
        echo "Table exists";
    }
}
else {
    echo "Table does not exist";
}

原始 mysql 版本:

if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) 
    echo "Table exists";
else echo "Table does not exist";

引用自 PHP 文档


答案 2

摘自另一篇文章

$checktable = mysql_query("SHOW TABLES LIKE '$this_table'");
$table_exists = mysql_num_rows($checktable) > 0;

推荐