为什么SQLite会抱怨我准备好的语句的语法?

时间:2009-10-19 06:43:25

标签: perl sqlite prepared-statement syntax-error

我无法在sqlite3中获取准备好的语句。我正在使用Perl和Perl DBD框架。以下是我使用的代码:

#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 prepare failed: near "SET": syntax error(1) at dbdimp.c line 
271 at database.pm line 80.

为什么我会收到错误?如果我在不使用准备好的语句的情我的应用程序中的每个其他预准备语句都有效,但UPDATE查询除外。

1 个答案:

答案 0 :(得分:11)

使用标准(和sqlite)UPDATE语法的查询是

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

没有重复的SET