修正Python 中的SQLite 參數替換錯誤
當基於列表迭代查詢資料庫中的特定值時,會出現一個常見的陷阱使用“?”參數替換法。雖然旨在防止 SQL 注入,但如果使用不當,此方法可能會導致錯誤。
在描述的場景中,會發生以下錯誤:「sqlite3.ProgrammingError:提供的綁定數量不正確。」這表示提供給execute()方法的參數數量與預期數量不符。
此錯誤源自於資料庫表的初始創建,該表有8列,因此需要8個參數對應的插入或更新查詢。但是,當使用“?”時替換方法中,第二個參數應該是僅包含要綁定的值的序列,而不是單一字串。
要解決此問題,應如下呼叫execute()方法:
<code class="python">self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", [item])</code>
透過傳遞一個包含單一元素([item]) 的清單作為第二個參數,可以提供正確的綁定數量並避免錯誤。此外,使用建議的形式與 sqlite3 遊標物件的 Python 庫參考中概述的建議保持一致。
以上是如何修復 Python 查詢資料庫時 SQLite 參數替換錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!