用Python插入MySQL表

用Python插入MySQL表,python,mysql,Python,Mysql,我正在尝试将基本数据插入MySQL表,但没有成功,我正在使用基本教程作为演示 mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第1行“%s”附近要使用的正确语法 我的MySQL CREATE TABLE awesome ( id int NOT NULL AUTO_INCREMENT, test varchar(50), PRIMARY KEY (id) ); 我的Pyth

我正在尝试将基本数据插入MySQL表,但没有成功,我正在使用基本教程作为演示

mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第1行“%s”附近要使用的正确语法

我的MySQL

CREATE TABLE awesome (
id int NOT NULL AUTO_INCREMENT,
test varchar(50),
PRIMARY KEY (id)
);
我的Python代码

import mysql.connector

mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="pass",
database="db"
)

mycursor = mydb.cursor()

sql = "INSERT INTO awesome (test) VALUES (%s)"
val = ("Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

是的,当val元组中只有一个参数时,问题就会出现。使用

val=(“21号公路”)


请注意末尾的逗号。

%s
周围添加单引号,这样会将%s添加到数据库中,我需要它来添加变量val,Highway 21。使用
val=(“Highway 21”)
。注意逗号;它使右侧成为一个内部有一个项的元组。没有逗号,Python将右边解释为字符串——它只是将括号内的表达式计算为字符串。@unutbu解决了这个问题,谢谢!相关的: