Python連接MYSQL的方案有MySQLdb、oursql、PyMySQL、 myconnpy、MySQL Connector等,不過本篇主要是說的PyMySQL模塊。Python的MySQLdb模塊支持的版本較低,PyMySQL模塊操作基本與MySQLdb操作一致,是一個不錯的替代品。下面就來看看Python的PyMYSQL模塊用法實例吧。
基本操作
(1)導入pymysql
import pymysql
(2)連接數據庫:
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8')
務必注意各等號前面的內容!charset參數可避免中文亂碼
(3)獲取操作游標:
cur=conn.cursor()
(4)執行sql語句,插入記錄:sta=cur.execute("insert 語句") 執行成功后sta值為1。更新、刪除語句與此類似。
(5)執行sql語句,查詢記錄:cur.execute("select語句") 執行成功后cur變量中保存了查詢結果記錄集,然后再用循環打印結果,如果是中文則需要處理編碼。
代碼實例
以下是PyMYSQL的完整代碼示例:
#!/usr/bin/env python # encoding: utf-8 import pymysql # 創建數據庫連接 conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="root", db="test", charset='utf8') # 創建數據庫游標 cursor = conn.cursor() # 執行SQL語句,中文要特別注意編碼的問題 effect_row = cursor.execute("INSERT INTO `tb_user`(user,password) VALUES (%s, %s)", ("風輕情淡".encode("utf-8"), "12345678")) # 獲取最新的自增ID new_id = cursor.lastrowid print(new_id) # 獲取影響的表行數 print(effect_row) data = cursor.execute("SELECT user,password FROM `tb_user`") # 獲取所有結果 ret1 = cursor.fetchall() print(ret1) print("----------------------") # 獲取查詢結果前兩行數據 ret2 = cursor.fetchmany(2) print(ret2) print("------------------------------") # 獲取查詢結果第一行數據 ret3 = cursor.fetchone() print(ret3) # 提交連接執行SQL語句 # 相對當前位置移動游標 cursor.scroll(-1, mode='relative') # 相對絕對位置移動游標 cursor.scroll(2, mode='absolute') conn.commit() # 關閉數據庫游標 cursor.close() # 關閉數據庫連接 conn.close()