Python: SQLite3のプレースホルダーとは

SQLite3のプレースホルダは、SQL文に動的に値を挿入するための仕組みです。 主に以下のような特徴があります:

  1. セキュリティ向上: SQLインジェクション攻撃を防ぐことができます。
  2. 記法: 通常は「?」記号を使用します。
  3. 使用方法:
    • SQL文中の値を入れたい箇所に「?」を配置します。
    • execute()またはexecutemany()メソッドの第2引数にタプルまたはリストで値を渡します。
  4. バインド: プレースホルダに値を割り当てることを「バインド」と呼びます。
  5. 複数のプレースホルダ: 1つのSQL文に複数のプレースホルダを使用できます。
  6. データ型の自動変換: Pythonのデータ型からSQLiteのデータ型に適切に変換されます。

例:

c.execute("INSERT INTO users VALUES (?, ?)", (3, 'Steve Arnott'))

この例では、最初の「?」に3が、2番目の「?」に'Steve Arnott'が割り当てられます。

プレースホルダを使用することで、SQLクエリの可読性が向上し、動的な値の挿入が容易になります。また、SQLインジェクション攻撃のリスクを大幅に軽減できるため、セキュリティ面でも重要な役割を果たします。

Python