Python リストをパラメータとして SQL クエリに組み込む
値 (例: [1, 5, 8])、これらのリスト要素に基づいてデータベース テーブルからデータを取得したいとします。具体的には、
select name from students where id = |IN THE LIST l|
のような SQL クエリを発行することを目的としています。これを実現するには、SQL 文字列に値を直接埋め込むよりも汎用性が高く、堅牢なパラメータ化されたクエリ アプローチの採用を検討してください。この手法では、数値と文字列の両方の値を効果的に処理でき、潜在的なエスケープの問題を排除できます。
次の Python コード スニペットは、このアプローチを示しています。
placeholder= '?' # For SQLite. Adjust based on database parameter style. placeholders= ', '.join(placeholder for unused in l) query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders cursor.execute(query, l)
プレースホルダー (例: '?') を使用する。 ) SQL クエリでリスト (l) をパラメータとして渡すと、データベースによって値が正しく処理されることが保証されます。このアプローチにより、データの整合性が保証され、制御されていない文字列の連結によって発生する可能性がある潜在的な SQL インジェクションの脆弱性が防止されます。
以上がSQL `IN` 句のパラメータとして Python リストを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。