python操作Mysql,很方便,使用的MySQLdb的庫,基本的操作如下: 查詢: 插入數據: 使用過程中遇到了編碼的問題,使用utf-8解決編碼問題: 還有遇到反斜杠的問題,mysql預設把反斜杠轉義了,我的解決方法是將反斜杠換成雙反斜杠: mysql語句需要格式化字元串,查詢的sql字元串需 ...
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還支持多條數據同時插入,不過我沒有使用這個,因為在外面加迴圈處理也很方便。