使用参数化的sql:
sql='UPDATE proxydata SET description = ? WHERe proxy = ?'args=[decription,proxy]self.c.execute(sql,args)
显然,这很容易,因为您不必自己引用参数,因此不易出错。这也是更安全的,因为参数化sql允许sqlite3防止sql注入。
注意如果
proxy或者
description本身包含一个单引号,那么就需要进行转义。您手动构造SQL语句不能正确转义该类型的引号。这可能是您看到语法错误的原因。
编辑:正如其他人指出的那样,语法错误的真正根源
UPDATE ... VALUES ...WHERe就是无效的(sqlite)SQL。在正确的UPDATE语法是
UPDATE... SET ... WHERe。



