MySQL检查表是否存在而不会引发异常
检查MySQL中是否存在表(最好是通过PHP中的PDO)而不引发异常的最佳方法是什么。我不想解析“SHOW TABLES LIKE”等的结果。一定有某种布尔查询吗?
检查MySQL中是否存在表(最好是通过PHP中的PDO)而不引发异常的最佳方法是什么。我不想解析“SHOW TABLES LIKE”等的结果。一定有某种布尔查询吗?
使用预准备语句查询information_schema数据库似乎是最可靠、最安全的解决方案。
$sql = "SELECT 1 FROM information_schema.tables
WHERE table_schema = database() AND table_name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$tableName]);
$exists = (bool)$stmt->fetchColumn();
如果您使用的是MySQL 5.0及更高版本,则可以尝试:
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '[database name]'
AND table_name = '[table name]';
任何结果都指示该表存在。
寄件人: http://www.electrictoolbox.com/check-if-mysql-table-exists/