1. 程式人生 > >pymysql 連線資料庫的兩種方式

pymysql 連線資料庫的兩種方式

第一種寫法:

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();  # 關閉連線,釋放記憶體