ホームページ >データベース >mysql チュートリアル >MySQL IN 句で Python リストを安全に使用する方法は?
MySQL クエリの IN 句で ID のリストを使用しようとする場合、次のことが不可欠です。操作の安全性を確保し、潜在的な SQL インジェクションの脆弱性を回避します。リストを文字列にマッピングしてクエリで直接使用すると脆弱なままになりますが、より安全な方法は、リストをパラメータとして直接使用することです。
これを実現するには、フォーマット文字列を利用して、リストの長さに基づいて、適切な数のプレースホルダー (%s) を生成します。次に、リスト自体がタプルとしてexecute() 関数に渡されるため、手動での引用符やエスケープの必要がなくなります。
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
データ (list_of_ids) をパラメータとして送信することで、次のように処理されます。 MySQL のドライバーを直接使用するため、インジェクションのリスクが排除されます。このメソッドを使用すると、追加のサニタイズや引用符を必要とせずに、文字列内の任意の文字を保存できます。
以上がMySQL IN 句で Python リストを安全に使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。