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