可能重复:
MySQL检查表是否存在而不抛出异常
我的项目中有一个动态的mysql查询构建器,它从不同的表创建选择查询.
我需要检查当前的处理表是否存在.
想象一下,我的表是table1,table2和table3.我的代码是这样的:
<?php
for($i = 1 ; $i <= 3 ; $i++) {
$this_table = 'table'.$i;
$query = mysql_query("SELECT * FROM $this_table");
// ...
}
?>
Run Code Online (Sandbox Code Playgroud)
我该如何检查(请告诉我最简单的方法).
afu*_*ama 90
更新了mysqli版本:
if ($result = $mysqli->query("SHOW TABLES LIKE '".$table."'")) {
if($result->num_rows == 1) {
echo "Table exists";
}
}
else {
echo "Table does not exist";
}
Run Code Online (Sandbox Code Playgroud)
原始mysql版本:
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1)
echo "Table exists";
else echo "Table does not exist";
Run Code Online (Sandbox Code Playgroud)
参考PHP文档.
bow*_*rae 12
取自另一篇文章
$checktable = mysql_query("SHOW TABLES LIKE '$this_table'");
$table_exists = mysql_num_rows($checktable) > 0;
Run Code Online (Sandbox Code Playgroud)
$query = mysqli_query('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME IN ("table1","table2","table3") AND TABLE_SCHEMA="yourschema"');
$tablesExists = array();
while( null!==($row=mysqli_fetch_row($query)) ){
$tablesExists[] = $row[0];
}
Run Code Online (Sandbox Code Playgroud)