-3

問題

次のように、テーブル名がパラメーター化されている PDO ステートメントを実行すると、 PDO 構文エラーが発生します。

$sql = 'DELETE FROM :table_name';
$query = $this->db->prepare($sql);
$query->execute(array(':table_name' => "mytable"));

SELECTなどで再現できたので、一般的な問題です。バッククォート、前にデータベース名、両方の組み合わせなどを使用して記述しようとしましたが、何も機能しません。

質問

これを行う方法 ?

4

2 に答える 2

5

テーブル名、列名、またはIN句内のものをパラメーター化することはできません (個別にバインドする必要があります)。php.net のこのコメントを参照してください。

参照: PHP PDO ステートメントは、テーブルまたは列の名前をパラメーターとして受け入れることができますか?

于 2013-10-16T13:31:13.893 に答える
0

SQL サーバーは、実際のクエリを実行する前にクエリを準備するための基本的な情報を必要とするため、PDO および MySQLi の準備済みステートメントでテーブル名をパラメーター化することはできません。

于 2013-10-16T13:31:52.973 に答える