Python使用mysql.connector向MySQL插入数据报参数处理错误如何解决
报错原因
mysql.connector的cursor.execute()方法要求传入的参数序列必须是元组、列表等可迭代对象,你代码中定义的val = ('bane')没有在单个元素后加逗号,Python不会将其识别为元组,只会判定为普通字符串类型。方法执行时会尝试遍历字符串拆分参数,和SQL语句中1个占位符的要求不匹配,因此抛出参数处理错误。- 代码中
execute执行后重复创建cursor的操作为冗余无效代码,无实际作用可以删除。
修复方法
将参数定义修改为标准元组格式(单元素末尾加逗号),删除冗余的cursor创建逻辑即可,修改后代码如下:
import mysql.connector mydb = mysql.connector.connect( host="10.0.72.17", user="admin", passwd="1qaz!QAZ", database="test" ) mycursor = mydb.cursor() sql = "INSERT INTO biage(kompaniis_saxeli) VALUES (%s)" val = ('bane',) # 单元素末尾加逗号,明确为元组类型 mycursor.execute(sql, val) mydb.commit()
你也可以选择用列表传参,写法为val = ['bane'],同样可以适配参数要求。
内容的提问来源于stack exchange,提问作者user17388930
相关产品推荐
相关产品推荐

