标签: php mysql
我正在使用php程序并想检查表是否存在。如果它确实存在,则不执行任何操作,如果它不创建并填充表。我遇到了
if(mysql_query("DESCRIBE `table`")) { // Exists }
但只有在确实存在时才会采取行动。会这样吗
if(!mysql_query("DESCRIBE `table`")) { // create and populate table }
做我要问的事情?
答案 0 :(得分:1)
你正在做什么是行不通的,因为测试只测试mysql_query()调用的返回值,而不是查询本身的结果。
mysql_query()
您需要使用SHOW TABLES LIKE 'table'查询表并检查返回的行数:
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
mysqli