正しい方法でパラメータをバインドしようとしていますが、MySQLから1064エラーが発生し、引用符が多すぎることを示しています。書かれたコードは次のようになります。
$db_host = 'localhost';
$db_username = 'root';
$db_password = 'Password123';
$db_database = 'db_test';
$dbh = new PDO("mysql:host=$db_host", $db_username, $db_password);
$stmt = $dbh->prepare("DROP DATABASE :db_database;");
$stmt->bindParam(':db_database', $db_database, PDO::PARAM_STR, 7);
$stmt->execute() or exit(print_r($stmt->errorInfo(), true));
エラーメッセージを表示します。
配列([0] => 42000 [1] => 1064 [2] => SQL構文にエラーがあります。「db_test」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 1行目)
変数$db_database
を間違った方法で挿入した場合、つまりSQL構文に直接挿入した場合は正常に機能しました。また、magic_quotesが影響を与える場合は、オフになっていることを確認しました。私は物事を正しく行ったように感じるので、今私は立ち往生しています(しかし明らかに私はしていません)。誰かがエラーを見ることができますか?