プリペアドステートメントでテーブル名指定できないのか
PHPでSQLite3をいじってるんだけど、PDOのPrepared Statementの構文を使ってテーブル名を指定しようと思ったらできなかった。
以下みたいにするとエラー吐く。
$sql = "create table :table_name (id integer, name text)"; $stmt = $db->prepare($sql); $stmt->bindValue(':table_name', $table_name, PDO::PARAM_STR); $stmt->execute();
ググって調べてみたところ、Prepared Statementはカラムの値に使うもので、テーブル名には使えないみたいだね。
しかたないので以下みたいにするとOKだった。
$sql = "create table ".$table_name." (id integer, name text)"; $stmt = $db->prepare($sql); $stmt->execute();