簡體   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