[英]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
[英]FIX “Check the manual that corresponds to your MySQL server version for the right syntax to use near '%s”
以下代码适用于插入查询,但不适用于更新和删除。
prono=int(input("Enter the poduct no :"))
sql_1="select * from product where prno=%s"
mycursor.execute(sql_1,prono)
myresult=mycursor.fetchall()
mydb.commit()
for x in myresult:
print(x)
#details printed
#req. details for updation
print("Please enter the new details of the product")
a=str(input("Enter the new name : "))
b=int(input("Enter the new price : "))
sql_2="update product set name=%s ,price=%s where prno=%s"
set1=(a,b,prono)
mycursor.execute(sql_2,set1)
mydb.commit
print("Product modified")
我得到的错误You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s'
您似乎正在尝试将string
转换为int
:
a=int(input("Enter the new name : "))
这可能不适用于您的表格布局。
尝试:
a=input("Enter the new name : ")
这不是no的拼写,它是一个保留字。 这似乎是有效的:
UPDATE product SET myname = 'string', myprice = 123 WHERE myno = 1;
(当然,您需要更改数据库表中的列名才能正常工作)
您使用 NO 作为列名,但它是 MySql 保留字,您应该像这样对 sql_1 和 sql_2 使用反引号:
sql_1="select * from product where `No`=%s"
sql_2="update product set name=%s ,price=%s where `NO`=%s"
但更好的解决方案是不使用保留字作为列名。
编辑
此外,您的 sql_1 查询是错误的,您不需要使用 ()。 如果你这样做,你会得到一个带有字符串的touple,而不是字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.