Python MySQL レコードセットを使ってデータを追加する

PythonでMySQLにレコードセット(カーソル)を使ってデータを追加(INSERT)する方法について、mysql-connector-python ライブラリを使って解説します。


目次

🧰 事前準備

1. ライブラリのインストール

pip install mysql-connector-python

📘 基本構文:レコードを1件追加(INSERT)

import mysql.connector

# データベースに接続
conn = mysql.connector.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)

# カーソルを作成(レコードセット)
cursor = conn.cursor()

# INSERT文を定義
sql = "INSERT INTO users (user_id, name, email) VALUES (%s, %s, %s)"
params = (1, "山田太郎", "yamada@example.com")

# 実行
cursor.execute(sql, params)

# コミット(保存)
conn.commit()

print(f"{cursor.rowcount} 件のレコードが追加されました。")

# 後始末
cursor.close()
conn.close()

🔁 複数のレコードを一括追加(executemany)

data = [
    (2, "佐藤花子", "sato@example.com"),
    (3, "鈴木一郎", "suzuki@example.com"),
    (4, "高橋優", "takahashi@example.com")
]

sql = "INSERT INTO users (user_id, name, email) VALUES (%s, %s, %s)"

cursor.executemany(sql, data)
conn.commit()

print(f"{cursor.rowcount} 件のレコードが一括追加されました。")

✅ ポイント解説

項目説明
cursor.execute()単一のレコードを追加
cursor.executemany()複数のレコードを一括で追加
%s値のプレースホルダ(MySQL専用。?ではない)
conn.commit()変更内容を確定(コミット)しないと追加されない
cursor.rowcount追加された行数を取得

🛡️ SQLインジェクション対策にも有効

プレースホルダ %s を使って値を渡す方法は、SQLインジェクションを防ぐ安全な方法です。


よかったらシェアしてね!
目次