繁体   English   中英

如何检查MySQLi中是否存在表?

[英]How to check is the table exists or not in MySQLi?

多数民众赞成我正在做的事情:

$mysqli = new mysqli($db_host,$db_user,$db_pass,$db_name);
$result = $mysqli->query("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = ".$db_name." AND table_name = users");
$nr = $result->num_rows; // 77 line
var_dump($nr);
$mysqli->close();

但错误说:

Notice: Trying to get property of non-object in test.php on line 77
NULL

你也可以使用这个语句来检查SHOW TABLES LIKE 'tablename';

要使您的方法起作用,您需要围绕字符串常量引用:

SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '".$db_name."' AND table_name = 'users';

但是,要使您的方法真正起作用,请执行以下操作:

SELECT 1
FROM information_schema.tables
WHERE table_schema = '".$db_name."' AND table_name = 'users';

您正在查看返回的行数,而不是count(*)的值。

SELECT COUNT(*) FROM `table_name` WHERE FALSE;

:-)

成功意味着表存在,失败......意味着它没有!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM