使用mysql-connector-python单条INSERT失效,批量插入正常?
MySQL Connector/Python 单条插入失效问题解决
问题场景
使用mysql-connector-python时,注释里的批量插入代码能正常执行,但自行编写的单条插入代码完全没有效果。
错误代码示例
query = "INSERT INTO selectdif (name, score) VALUES (%s, %s)" value = ("Sssss", 10) cursor.execute(query) """sql = "INSERT INTO selectdif (name, score) VALUES (%s, %s)" val = [ ('Peter', 'Lowstreet 4'), ('Amy', 'Apple st 652'), ('Hannah', 'Mountain 21'), ('Michael', 'Valley 345'), ('Sandy', 'Ocean blvd 2'), ('Betty', 'Green Grass 1'), ('Richard', 'Sky st 331'), ('Susan', 'One way 98'), ('Vicky', 'Yellow Garden 2'), ('Ben', 'Park Lane 38'), ('William', 'Central st 954'), ('Chuck', 'Main Road 989'), ('Viola', 'Sideway 1633') ] cursor.executemany(sql, val)"""
问题原因
- 调用
cursor.execute()时,没有把定义好的参数value传入方法,导致SQL语句里的%s占位符没有被替换成实际值,插入操作等于没执行有效数据。 - 如果
score字段是字符串类型,原参数里的数字10需要转为字符串格式,否则会因类型不匹配导致插入失败。
修正后的代码
query = "INSERT INTO selectdif (name, score) VALUES (%s, %s)" value = ('Sssss', '10') cursor.execute(query, value)
内容的提问来源于stack exchange,提问作者محمد حسین رحیمی
相关产品推荐
相关产品推荐

