引言:python mysqldb的操作中遇到的一些坑。
1.为什么要用conn.ping(True)?
在实际业务中遇到过因为数据库持久的连接而没有操作数据库的时候就会出现
MySQL gone away的异常,因此这里使用conn.ping(True)来解决这个问题,
当然还有另外一种解决方案,就留给读者去探索。
2.关于为什么要commit?因为在执行一些操作的时候如果没有commit数据库就不
会真正的执行SQL语句。
db.py
!usr/bin/env python
coding=utf8
import MySQLdb
def conn():
conn = MySQLdb.Connect(host="127.0.0.1",port=3306,user="root",passwd="root",db='test')
conn.ping(True)
cursor=conn.cursor()
return (cursor,conn)
curd.py
cursor,t = conn()
sql = "insert into gaofangip (ip) values ('114.114.114.114');"
cursor.execute(sql)
cursor.close()
t.commit()
t.close()
总结:
各种操作最后都要记得commit,这个关系型数据MySQL当中的myisam和innodb有关,支持事物的特性相关。