我在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准备失败:“SET”附近:dbdimp.c行的语法错误(1)
271在database.pm第80行。
为什么会出现该错误?如果我在不使用准备好的语句的情况下进行尝试,那么它将起作用。我的应用程序中的所有其他准备好的语句都起作用,除了UPDATE查询。
最佳答案
使用标准(和sqlite的)UPDATE语法的查询是
UPDATE rooms SET name = ?, capacity = ? WHERE id = ?
没有重复的SET
关于perl - 为什么SQLite提示我准备好的语句的语法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1587258/