我在写一个爬虫进行入库的时候,前面几十条数据可以正常插入,但是之后执行插入语句没有报错,正常执行,只是数据库没有内容。
用的是DBUtils,数据库模块是pymysql, 数据库引擎是innodb。
下面是我的代码:
[Python] 纯文本查看 复制代码 pool = PooledDB(
creator=pymysql, #使用连接数据库的模块
maxconnections=18, #连接池允许的最大连接数,0和None表示不限制
mincached=2, #初始化时,连接池中至少创建空闲的链接,0表示不创建
maxcached=5, #连接池中最多闲置的链接,0和None表示不限制
blocking=True, #链接池中如果没有可用链接后是否堵塞等待。True等待,false不等待然后报错
maxusage=None, #一个链接最多被重复使用的次数,None表示无限制
setsession=[], #开始会话前执行命令的列表,如:["set datestyle to ...", "set time zone ..."]
ping=0, #mysql服务端检查服务是否可用
host='127.0.0.1',
port=3306,
user='root',
password='123456',
database='b',
charset='utf8mb4',
autocommit=True
)
sql执行代码
[Python] 纯文本查看 复制代码 def add(sql):
try:
conn = pool.connection()
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
id = cursor.lastrowid
return id
except Exception as e:
conn.rollback()
logging.warning('插入sql语句失败,sql:{},失败原因{}'.format(sql,e))
return False
finally:
cursor.close()
conn.close()
|