並非 MySQL 語句中使用的所有參數:Python中的故障排除
簡介
執行時使用Python與mysql.connector函式庫進行SQL查詢時,將SQL語句中的參數標記與資料傳遞到遊標。否則可能會導致「SQL 語句中未使用所有參數」錯誤。
遇到錯誤
請考慮以下程式碼片段:
import mysql.connector Name = "James" Department = "Finance" StartYear = 2001 CurrentPos = 2001 Link = "" add_user = ("INSERT INTO DB.tbluser " "(username, department, startyear, currentpos, link) " "VALUES (%s, %s, %d, %d, %s)") data_user = (Name, Department, StartYear, CurrentPos, Link)
使用cursor.execute()方法執行此程式碼將觸發「Not allparameters wereused in the SQL statements”錯誤。
分析
出現錯誤是因為 StartYear 和 CurrentPos 欄位的參數標記不正確。 %d 標記用於整數,而 SQL 語句為所有參數指定 %s 標記。
解決方案
要解決該錯誤,%d 標記應該替換為%s 標記:
add_user = """INSERT INTO DB.tbluser (username, department, startyear, currentpos, link) VALUES (%s, %s, %s, %s, %s)"""
此更改可確保所有參數在SQL語句中正確表示並且可以正確綁定
注意
雖然mysql.connector 中的參數標記類似於Python 字串格式化中使用的%s,但這兩種語法是不同的。其他資料庫適配器可能使用不同的參數標記,例如?在我們的sql和sqlite3中。
以上是為什麼我的 Python MySQL 程式碼會拋出「SQL 語句中未使用所有參數」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!