使用以下代码循环写入数据到mysql
数据总是丢失非常多,到底是怎么回事?
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "password", "kecheng")
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
def jian(tablename):
# 使用预处理语句创建表
sql1 = """CREATE TABLE %s (
id TINYINT NOT NULL AUTO_INCREMENT KEY,
monday CHAR(20) NOT NULL,
tuesday CHAR(20) NOT NULL,
wednesday CHAR(20) NOT NULL,
thursday CHAR(20) NOT NULL,
friday CHAR(20) NOT NULL,
saturday CHAR(20) NOT NULL,
sunday CHAR(20) NOT NULL )""" % tablename
cursor.execute(sql1)
def charu(tablename, li):
# SQL 插入语句
sql2 = """INSERT INTO %s(id, monday,
tuesday, wednesday, thursday, friday, saturday, sunday)
VALUES (null, '%s', '%s', '%s', '%s', '%s', '%s', '%s')""" % (tablename, li[0], li[1], li[2], li[3], li[4], li[5], li[6])
try:
cursor.execute(sql2)
db.commit()
except:
db.rollback()
找到原因了,是因为字段长度不够,导致插入失败
代码错误,可以尝试重新编辑一下
我觉得是你没有关闭游标的原因