我想使用PDO删除数据库。PHP/MYSQL - 使用预处理语句删除数据库
这种方法是最好的之一,我
function delete_db($database)
{
$statement = $my_pdo_obj->prepare("DROP DATABASE IF EXISTS :database");
$statement->bindParam(":database", $database);
$statement->execute();
}
但不幸的是,我有一个PDOException说,附近有我的绑定值语法错误($数据库):
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1'
所以我试图执行查询如下
function delete_db($database)
{
$statement = $my_pdo_obj->exec("DROP DATABASE IF EXISTS " . $database);
}
它的工作原理。
我想知道为什么准备好的语句不工作,如果第二个查询是安全的。
在此先感谢您的想法!
谢谢您的回答使用绑定值!第二个呢,我应该保留它吗? – Xor
如果您需要从您的应用程序执行此操作,为什么不呢。但不要忘记防止SQL注入 –