PDOを使用してデータベースを削除します。PHP/MYSQL - 準備済みの文を使用してデータベースを削除する
このアプローチは、最高の1
私に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);
}
そしてそれは動作します。
私は、準備されたステートメントがなぜ機能していないのか、そして2番目のクエリが保護されているのかどうか不思議でした。
あなたのアイデアを事前におねがいします!
感謝のための結合値を使用することはできません!私はそれを維持する必要があります第二のものはどうですか? – Xor
アプリケーションからこれを行う必要がある場合は、そうしないでください。しかし、SQLインジェクションから保護することを忘れないでください –