PDO を使用してデータベースを削除したいと考えています。
このアプローチは私にとって最高のものでした
function delete_db($database)
{
$statement = $my_pdo_obj->prepare("DROP DATABASE IF EXISTS :database");
$statement->bindParam(":database", $database);
$statement->execute();
}
しかし残念ながら、バインドされた値 ($database) の近くに構文エラーがあるという PDOException が発生しました。
致命的なエラー: キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。「?」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。1行目'
だから私は次のようにクエリを実行しようとしました
function delete_db($database)
{
$statement = $my_pdo_obj->exec("DROP DATABASE IF EXISTS " . $database);
}
そして、それは機能します。
準備されたステートメントが機能しない理由と、2番目のクエリが保護されているかどうか疑問に思っていました。
あなたのアイデアを前もってありがとう!