使用Python更新表时Sqlite出错

时间:2017-07-02 02:34:28

标签: python sqlite

我正在使用python来更新Sqlite表中的条目。 我正在使用的命令是:

handle.execute("UPDATE RECORD set NAME=%s DEVICE=%s PROJECT=%s IP=%s COMMENT=%s where ID = %s"%(arg[2],arg[3],arg[4],arg[5],arg[6],arg[1]))

对此我收到的错误是:

sqlite3.OperationalError: near "DEVICE": syntax error

我无法理解Device的具体错误。我也检查了变量是否符合预期。数据库有一个名为device的列,可以使用此python文件打开/访问和编辑数据库。

1 个答案:

答案 0 :(得分:1)

设置项目之间缺少逗号。

除此之外,不是字符串格式化,而是pass parameters来阻止SQL注入:

handle.execute(
    """UPDATE RECORD
    SET NAME=%s, DEVICE=%s, PROJECT=%s, IP=%s, COMMENT=%s
    WHERE ID = %s""",
    (arg[2], arg[3], arg[4], arg[5], arg[6], arg[1]))

<强>更新 如果您坚持使用字符串格式,则应引用%s'%s'