php - MySQL 检查表是否存在而不抛出异常

标签 php mysql pdo database

在不抛出异常的情况下,检查 MySQL 中是否存在表(最好通过 PHP 中的 PDO)的最佳方法是什么。我不想解析“SHOW TABLES LIKE”等的结果。一定有某种 bool 查询?

最佳答案

使用准备好的语句查询 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();

关于php - MySQL 检查表是否存在而不抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525784/

相关文章:

java - JAR 与 JDBC 连接

php - 推进 ORM : PDOException "Can' t create more than max_prepared_stmt_count statements"

php - 使用php生成二维码

php - 从 MySQL 数据库中选择星期,星期三到星期二

php - 调用未定义的方法 MongoDB\Driver\Server::executeReadCommand()

内连接中的MySQL复杂日期计算

mysql - 在表中搜索与不同表中所有对应值匹配的行

php - 带有 SELECT OR 的 mysql PDO,错误! : SQLSTATE[HY093]

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

PHP MySQL 联接两个表查询