(Python)SQL、プリペアードステートメント

プリペアードステートメントを使うには、コネクションからカーソルを取得するときにprepared=Trueを渡す。

import mysql.connector

config = {
    "host": "localhost", 
    "database": "test_db", 
    "user": "masawa", 
    "password": "masawa"
}

conn = mysql.connector.connect(**config)
cursor = conn.cursor(prepared=True)

cursor.execute("INSERT INTO persons (name) VALUES (?);", ("Nancy",))

cursor.execute("SELECT * FROM persons;")
persons = cursor.fetchall()

for row in persons:
    print("id: {}, name: {}".format(row[0], row[1]))

cursor.close()
conn.close()
id: 1, name: Mike
id: 2, name: Nancy