偶然做了一个小项目
首先我有一个字典,准备把这个字典里的内容,通过遍历的方式放入到数据库中代码如下
for key, value in data.items():
sql = "insert into hellocode.course(****,****) values(%a,%s)" % (key, value)
try:
cursor.execute(sql) # 执行sql语句,也可执行数据库命令,如:show tables
db.commit() # 增删改,必须执行事务
print("数据更新成功")
except Exception as e:
db.rollback() # 若出现失败,进行回滚
print("数据更新失败")
print(e)
cursor.close() # 关闭当前游标
db.close() # 关闭数据库连接
按照最初的想法是,key和value通过格式化字符串的方式,放进sql语句中,但是运行的时候sql报了一个错误
pymysql.err.OperationalError: (1054, “Unknown *******************”)
通过检查输出sql语句发现,key和value是以值的形式格式化进入字符串的,所以这条sql语句在Mysql中运行是不合法的。解决方案如下
"insert into hellocode.course(****,****) values(\"%s\",\"%s\")"%(key,value)
需要在拼接的时候加上一对引号,问题解决