在 PHP 中,查看表是否存在的最佳方法是什么?
这是我到目前为止使用的
public function TableExists($table) {
$res = $this->Query("SELECT 1 FROM $table");
if(isset($res->num_rows)) {
return $res->num_rows > 0 ? true : false;
} else return false;
}
如果表不存在,您发布的内容将引发错误。试试这个:
SHOW TABLES LIKE 'tablename';
并确保您准确地返回一排。
Colin 有正确的解决方案——使用SHOW TABLES LIKE
. 这是使用您的代码的样子:
public function TableExists($table) {
$res = $this->Query("SHOW TABLES LIKE $table");
return mysql_num_rows($res) > 0;
}
用于查看,如果[table name]
存在
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '[database name]'
AND table_name = '[table name]';
其他答案的方法的替代SHOW TABLES
方法是使用INFORMATION_SCHEMA
这样的:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'tablename';
$con = mysqli_connect($hostname,$username,$password,$database);
if(mysqli_num_rows(mysqli_query($con,"SHOW TABLES LIKE 'accman'"))) {
echo "DB EXIST";
} else {
echo "DB Not Exist";
}