0

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クエリを除いて、アプリケーションで準備された他のすべてのステートメントは機能します。

4

1 に答える 1

11

標準(およびsqlite)のUPDATE構文を使用したクエリは

UPDATE rooms SET name = ?, capacity = ? WHERE id = ?

SETを繰り返さずに

于 2009-10-19T07:07:02.733 に答える