Python: SQLite3のプレースホルダーとは
SQLite3のプレースホルダは、SQL文に動的に値を挿入するための仕組みです。 主に以下のような特徴があります:
- セキュリティ向上: SQLインジェクション攻撃を防ぐことができます。
- 記法: 通常は「?」記号を使用します。
- 使用方法:
- SQL文中の値を入れたい箇所に「?」を配置します。
- execute()またはexecutemany()メソッドの第2引数にタプルまたはリストで値を渡します。
- バインド: プレースホルダに値を割り当てることを「バインド」と呼びます。
- 複数のプレースホルダ: 1つのSQL文に複数のプレースホルダを使用できます。
- データ型の自動変換: Pythonのデータ型からSQLiteのデータ型に適切に変換されます。
例:
c.execute("INSERT INTO users VALUES (?, ?)", (3, 'Steve Arnott'))
この例では、最初の「?」に3が、2番目の「?」に'Steve Arnott'が割り当てられます。
プレースホルダを使用することで、SQLクエリの可読性が向上し、動的な値の挿入が容易になります。また、SQLインジェクション攻撃のリスクを大幅に軽減できるため、セキュリティ面でも重要な役割を果たします。