我正在使用插入查询插入mysql表,我的语法有错误


x = self.npprocess_PTE.text()
y = 123
if len(self.npprocess_PTE.text()) == 0:
print("yes") 
else:
model = QtGui.QStandardItemModel()
self.npprocessview_LV.setModel(model)
z = model.rowCount()
z = z + 1
a = str(z)+'_Process'
b = "INSERT INTO new_part_info(%s) VALUES(%s) WHERE Part_ID = %s"
c = (z, x, y)
mycursor.execute(b, c)
mydb.commit()

我得到的错误:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,了解在'1)附近使用的正确语法值('WB'),其中第 1 行的 Part_ID = 123'

我可以在您的插入查询中看到两个错误:

  1. 正如其他人指出的那样,insert声明没有where条款。要么你需要摆脱它,要么你需要将insert更改为update.但是,这不是导致错误消息的错误。

  2. 您可以使用z变量作为插入的列的名称。z是一个数字。正如关于对象标识符的mysql手册所说:

标识符可以以数字开头,但除非引用,否则不能仅由数字组成。

因此,您需要引用z中的值:

w = '`' + str(z) + '`'

然后在执行insert时使用w而不是z。或者,您需要使用a变量而不是z,因为它被创建为:

a = str(z)+'_Process'

实际上,这取决于表中列的名称。

最新更新