Python SQLite UPDATE函数使用报错:提示'='符号附近存在错误,求排查
解决SQLite UPDATE语句的语法错误问题
嘿,我一眼就看出问题所在啦——你的SQL UPDATE 语句用了错误的语法格式,这才导致了'='符号附近的报错!
错误原因分析
SQLite的UPDATE语句里,SET关键字后面不需要用括号包裹字段赋值。你写的:
UPDATE product SET (product_qty = ?, product_price = ?) WHERE product_name = ?
这种带括号的写法不符合SQLite的语法规范,数据库引擎无法识别,所以会抛出语法错误。
修正后的代码
把SET后面的括号去掉,直接用逗号分隔每个字段的赋值即可,修改后的UpdateNew()函数如下:
def UpdateNew(): Database() # 假设这个函数已经正确初始化了conn和cursor # 修正SQL语句,去掉SET后面的括号 cursor.execute("UPDATE product SET product_qty = ?, product_price = ? WHERE product_name = ?", (int(PRODUCT_QTY.get()), int(PRODUCT_PRICE.get()), str(PRODUCT_NAME.get()))) conn.commit() # 清空输入框内容 PRODUCT_NAME.set("") PRODUCT_PRICE.set("") PRODUCT_QTY.set("") # 关闭游标和连接 cursor.close() conn.close()
额外提醒
- 确保你的
Database()函数已经正确创建了数据库连接conn和游标cursor,并且它们是当前函数可以访问的(比如全局变量或者函数返回后赋值)。 - 如果
PRODUCT_PRICE可能是小数(比如价格有分),建议用float()而不是int()转换,避免丢失精度。
内容的提问来源于stack exchange,提问作者Angad Kanwar
相关产品推荐
相关产品推荐

