python基础总结篇——使用Mysql
python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下:
查询:
1 try: 2 conn = MySQLdb.connect(host=self.ip, user=self.username,passwd=self.password, db=self.dbname, port=self.port) 3 cur = conn.cursor() 4 cur.execute(sql) 5 rows = cur.fetchall() 6 data = rows 7 except MySQLdb.Error, e: 8 print str(e) 9 print "Connet mysql db error..." 10 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还支持多条数据同时插入,不过我没有使用这个,因为在外面加循环处理也很方便。