pymysql 連線資料庫的兩種方式
阿新 • • 發佈:2018-11-30
第一種寫法:
import pymysql import pymysql.cursors # Connect to the database # 如果不加這個,打印出來的result為元組, 加上這個 列印的result 結果為列表裡面包含字典。 connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='haha', charset='utf8',cursorclass=pymysql.cursors.DictCursor) cursor = connection.cursor() sql = 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)' cursor.execute(sql, ('Robin', 'Zhyea', tomorrow, 'M', date(1989, 6, 14))) # 插入一條資料 # data為多條資料,放在一個元組或者列表中 cursor.executemany(sql, data) # 插入多條資料 # 沒有設定預設自動提交,需要主動提交,以儲存所執行的語句 connection.commit() # 連線提交事務 cursor.close() # 關閉遊標連線 connection.close(); # 關閉連線,釋放記憶體
第二種寫法::用字典進行連線引數的管理,這樣子更優雅,推薦使用
import pymysql.cursors # 連線配置資訊 config = { 'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'password': 'root', 'db': 'haha', 'charset': 'utf8', 'cursorclass': pymysql.cursors.DictCursor, } # 建立連線 connection = pymysql.connect(**config) # 建立遊標方法1 cursor = connection.cursor() # 建立遊標方法2 取別名為 cursor with connection.cursor() as cursor: # 執行sql語句,插入記錄 sql = 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)' cursor.execute(sql, ('Robin', 'Zhyea', tomorrow, 'M', date(1989, 6, 14))) # 插入一條資料 # data為多條資料,放在一個元組或者列表中 cursor.executemany(sql, data) # 插入多條資料 # 沒有設定預設自動提交,需要主動提交,以儲存所執行的語句 connection.commit() # 連線提交事務 cursor.close() # 關閉遊標連線 connection.close(); # 關閉連線,釋放記憶體