首頁 >後端開發 >Python教學 >如何在 Python 的 MySQL IN 子句中安全地使用清單?

如何在 Python 的 MySQL IN 子句中安全地使用清單?

Linda Hamilton
Linda Hamilton原創
2024-11-19 16:04:02393瀏覽

How Can I Safely Use a List in a MySQL IN Clause in Python?

在Python 的MySQL IN 子句中安全地使用列表

在Python 中,您可以使用join 輕鬆將列表轉換為字符串() 方法。然而,當在 MySQL IN 子句中使用該字串時,避免 SQL 注入漏洞至關重要。

傳統方法涉及在執行字串之前手動引用和轉義該字串,這很容易出錯。為了解決這個問題,您可以使用以下技術直接利用強大的 list_of_ids:

  1. 建立格式字串: 使用清單中的值的佔位符建立字串。例如,如果 list_of_ids 有 3 個元素,則建立一個類似 ','.join(['%s'] * 3) 的字串,這將導致「?, ?, ?」。
  2. 執行查詢: 使用遊標物件的execute()方法來執行查詢。將格式字串作為第一個參數傳遞,將 list_of_ids 作為第二個參數傳遞。這確保了值作為參數傳遞,而不是插入到查詢字串中。
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 IN 子句中使用列表,而不必擔心 SQL 注入。數據直接作為參數傳遞,無需手動引用和轉義。

以上是如何在 Python 的 MySQL IN 子句中安全地使用清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn