python基础总结篇——使用Mysql

时间:2021-02-13 13:05:48

python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下:

查询:

 try:
conn = MySQLdb.connect(host=self.ip, user=self.username,passwd=self.password, db=self.dbname, port=self.port)
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()
data = rows
except MySQLdb.Error, e:
print str(e)
print "Connet mysql db error..."
sys.exit()

插入数据:

try:
conn = MySQLdb.connect(host=self.ip, user=self.username, passwd=self.password, db=self.dbname, port=self.port)
cur = conn.cursor()
cur.execute(sql, value)
conn.commit()
conn.close()
cur.close()
except MySQLdb.Error, e:
print str(e)
print "Execute mysql db error..."
sys.exit()

使用过程中遇到了编码的问题,使用utf-8解决编码问题:

conn.set_character_set('utf8')
cur.execute('SET NAMES utf8;')
cur.execute('SET CHARACTER SET utf8;')
cur.execute('SET character_set_connection=utf8;')

还有遇到反斜杠的问题,mysql默认把反斜杠转义了,我的解决方法是将反斜杠换成双反斜杠:

datapath = datapath.replace('\\', '\\\\')

mysql语句需要格式化字符串,查询的sql字符串需要用%来代表变量占位,不过python好像必须要用%s

executemany还支持多条数据同时插入,不过我没有使用这个,因为在外面加循环处理也很方便。