我有这个小问题:
id = 'TESTID'
sql = "SELECT ID,PASSWORD FROM USERS WHERE ID = %s"
cursor.execute(sql,(id))
我遇到了错误:
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 'TESTID''' at line 1
我知道这是双引号。我有多个其他查询运行完美,但他们有3个参数
示例:
id = 'TESTID'
GR = 'TEST'
name = 'HELLO'
last_name = 'WORLD'
sql = "INSERT INTO USERS (ID,GR,name,last_name) VALUES (%s,%s,%s,%s)"
cursor.execute(sql,(id,gr,name,last_name))
这个开头没有3个双引号,最后有3个双引号并且运行完美,所以我现在不知道该怎么做。
谢谢你。
答案 0 :(得分:1)
你应该记住的一件事是(7)
与7
相同。对于长度为1的元组,您必须说(7,)
(请注意重要的尾随逗号)。
所以改变这一行:
cursor.execute(sql,(id))
至cursor.execute(sql,(id,))
。