sqlite3でプリペアドステートメントを機能させるのに問題があります。私はPerlとPerlDBDフレームワークを使用しています。以下は私が使用するコードです:
#This is a function I have defined
sub query($@){
my $st = $db->prepare(shift);
$st->execute(@_);
}
#And it is used like so
query("UPDATE rooms SET name = ?, SET capacity = ? WHERE id = ?",
$name, $capacity, $id);
これを試してみると、次のエラーが発生します。
DBD :: SQLite :: dbの準備に失敗しました:「SET」の近く:dbdimp.c行の構文エラー(1) database.pmの80行目で271。
なぜそのエラーが発生するのですか?プリペアドステートメントを使用せずに試してみると、機能します。UPDATEクエリを除いて、アプリケーションで準備された他のすべてのステートメントは機能します。