MySQL の IN 句にリストを安全に挿入する
この記事では、MySQL データベース内の IN 句にリストを挿入するための効率的かつ安全な方法について説明します。従来のアプローチにはリストを文字列にマッピングして直接挿入する必要がありますが、この方法では手動で引用符を付けたりエスケープしたりする必要があるため、SQL インジェクションのリスクが生じます。
この脆弱性を回避するには、より安全なアプローチを使用します。 MySQL クエリのパラメータとしてリストを直接指定します。次のコードは、このメソッドを示しています:
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
このコードは次のことを実現します:
次のことが重要です。このメソッドは、パラメータを安全に処理する MySQL ドライバの機能に依存していることに注意してください。データがパラメーターとして正しく渡される限り、クエリは SQL インジェクションから安全なままです。
以上がMySQL の IN 句にリストを安全に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。