Python和MySQL:简单INSERT出错

时间:2017-10-26 19:43:14

标签: python mysql sql-insert mysql-python

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

感谢您的帮助,我真的不明白为什么。

2 个答案:

答案 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}")')