import mysql.connector
conn = mysql.connector.connect(host="localhost",user="root",password="password", database="database_name")
cursor = conn.cursor()
a = "abcd"
cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES (?)", (a))
这是我执行脚本时遇到的错误:
ProgrammingError: 1064 (42000): Syntax error near to '?)' at line 1
感谢您的帮助,我真的不明白为什么。
答案 0 :(得分:1)
您可能想要的是将变量a插入到您的SQL代码中,但它不起作用 - 并且解析器获得“?”你希望它有“abcd”的地方
你可以试试这个:
cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES ({})".format(a))
或(以某种python2方式):
cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES (%s)", (a,))
如下所述: https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html
答案 1 :(得分:0)
尝试使用f字符串,
看起来应该是这样的:
cursor.execute(f'INSERT INTO student (student_name, student_email, courseid) VALUES ("{student_name}","{student_email}",{course_id})')
其中student_name,student_email和course_id都是变量。
在你的情况下:
cursor.execute(f'INSERT INTO table_jeux (lien_fiche) VALUES ("{a}")')