并非 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中文网其他相关文章!