( "?")、( "?")形式で配列を暗黙指定することはできません。クエリが引用符で囲まれている可能性があります。
クォーテーション/エスケープの問題を解決するための準備が整っています。
この構文は間違っている:
insert into test (sometext) values ("?"),("?")
あなたはこのフォームでクエリを記述する必要があり、引用符でパラメータをラップする必要はありません。
INSERT INTO test (sometext) VALUES (?),(?)
その後、することができます引用符を気にせずにimplode()
を使用します。
$a = array("weird' text", "sdfa");
$query = "INSERT INTO test (sometext) VALUES (" . implode("),(", array_fill(0, count($a), "?")) . ")";
$stmt = $db->prepare($query);
$stmt->execute($a);
別の方法として、あなたの代わりにimplode
のsubstr
とstr_repeat
を使用することができます。
insert into test (sometext) values ("?"),("?")
を使用して
$query = "INSERT INTO test (sometext) VALUES " . substr(str_repeat("(?),", count($a)), 0, -1);
あなたは文字通りあなたのフィールドに2つの疑問符を挿入します。