Overview

mysql-connector-python 是 Python 連接並控制 MySQL 資料庫的一種套件。

Usage

config

設定資料庫來源配置檔案,建議可以存到其他檔案匯入使用,在部屬應用程式的時候才能對敏感資料做出區隔。

config = {
    'host': 'localhost',
    'user': 'root',
    'password': 'password',
    'database': 'test_db'
}

Basic

基本使用範例,此處使用字典模式 dictionary=True 做查詢,預設是 tuple 模式,個人認為字典使用起來比較直觀,不用記哪一筆資料是放在第幾個索引值。

import mysql.connector
con = mysql.connector.connect(**config)
cur = con.cursor(dictionary=True)
sql = "SELECT * FROM test_table where column_1='value';"
cur.execute(sql)
result = cur.fetchall()
print(result[0]['column_1'])

Parameter binding with tuple

為了避免使用者輸入意料之外的內容來操作資料庫,也就是 SQL Injection。因此使用 parameter binding 方法,對輸入資料做檢查,避免惡意攻擊。

user_type = 'value'
sql = "SELECT * FROM test_table where column_1=%s;"
cur.execute(sql, (user_type,))

Parameter binding with dictionary

前一部分提到的 parameter binding 是使用 tuple 做輸入,個人認為也很不值觀,因此也可以使用字典模式做配對。

user_type = 'value'
sql = "SELECT * FROM test_table where column_1=%(column_1)s;"
cur.execute(sql, {'column_1': user_type})

Errors and Exceptions

MariaDB Error Codes

Reference