使用php和mysql来查看表是否存在

时间:2014-11-04 03:53:04

标签: php mysql

我正在使用php程序并想检查表是否存在。如果它确实存在,则不执行任何操作,如果它不创建并填充表。我遇到了

if(mysql_query("DESCRIBE `table`")) {
    // Exists
}

但只有在确实存在时才会采取行动。会这样吗

if(!mysql_query("DESCRIBE `table`")) {
    // create and populate table
}

做我要问的事情?

1 个答案:

答案 0 :(得分:1)

你正在做什么是行不通的,因为测试只测试mysql_query()调用的返回值,而不是查询本身的结果。

您需要使用SHOW TABLES LIKE 'table'查询表并检查返回的行数:

$db = new mysqli(...);
$result = $db->query("SHOW TABLES LIKE 'table'");
if ($result->num_rows == 0) {
   // create table
}

注意:不推荐使用mysql _ *() - 不应将其用于新代码。

您将找到MySQL参考here,以及mysqli here

的PHP参考