我想把表格中的数据写进sql里,但总是失败,我试过一下几种方式:
方式一:用字典的方式传递参数,结果是写入失败
value1 = str(sht[f'{z_l1}{i2}'].value)
# SQL 插入语句
print('value1:', value1)
c_zd = {
'wz': z_l1,
'zz': '1'
}
sql = """INSERT INTO py_xl_sql(%(ww)s)
VALUES (%(zz)s))"""
try:
# 执行sql语句
cursor.execute(sql, c_zd)
# 提交到数据库执行
db.commit()
print(z_l1, i2, "写入成功!")
except:
# 如果发生错误则回滚
db.rollback()
print(z_l1, i2, "写入失败!")
方式二:用占位符的方式,结果是写入失败:
value1 = str(sht[f'{z_l1}{i2}'].value)
# SQL 插入语句
print('value1:', value1)
"""c_zd = {
'wz': z_l1,
'zz': '1'
}"""
sql = """INSERT INTO py_xl_sql(%s)
VALUES (%s)"""
try:
# 执行sql语句
cursor.execute(sql, (z_l1, value1))
# 提交到数据库执行
db.commit()
print(z_l1, i2, "写入成功!")
except:
# 如果发生错误则回滚
db.rollback()
print(z_l1, i2, "写入失败!")
为了判定问题位置,我做了实验,情况是把sql的表头的信息传进去,能够成功,value写成固定值。这样就能行,把value的参数带上就写入失败,请教,这是什么原因啊,应该怎么写
我觉得你这里是有点问题的
sql = """INSERT INTO py_xl_sql(%s)
VALUES (?)"""
cursor.execute(sql, (z_l1, value1.strip()))
字典里是wz,你拼接的时候写ww?