【发布时间】:2017-01-02 17:14:16
【问题描述】:
我想使用 PDO 删除数据库。
这种方法对我来说是最好的方法
function delete_db($database)
{
$statement = $my_pdo_obj->prepare("DROP DATABASE IF EXISTS :database");
$statement->bindParam(":database", $database);
$statement->execute();
}
但不幸的是,我收到一个 PDOException,说我的绑定值 ($database) 附近存在语法错误:
致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“?”附近使用的正确语法在第 1 行'
所以我尝试如下执行查询
function delete_db($database)
{
$statement = $my_pdo_obj->exec("DROP DATABASE IF EXISTS " . $database);
}
而且它有效。
我想知道为什么准备好的语句不起作用,以及第二个查询是否安全。
提前感谢您的想法!
【问题讨论】:
标签: php pdo drop-database