并非所有参数都用于SQL语句(Python,MySQL)

前端之家收集整理的这篇文章主要介绍了并非所有参数都用于SQL语句(Python,MySQL)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在以下 Python代码中收到错误
import MysqL.connector
cnx = MysqL.connector.connect(user='root',password='',host='127.0.0.1',database='DB')
cursor = cnx.cursor()

Name = "James"
Department = "Finance"
StartYear = 2001
CurrentPos = 2001
Link = ""

add_user = ("INSERT INTO DB.tbluser "
       "(username,department,startyear,currentpos,link) "
       "VALUES (%s,%s,%d,%s)")
data_user = (Name,Department,StartYear,CurrentPos,Link)
cursor.execute(add_user,data_user)
cnx.commit()
cursor.close()
cnx.close()

错误消息是

MysqL.connector.errors.ProgrammingError: Not all parameters were used in the sql statement

你明白为什么吗

解决方法

参数标记是%s不是%d.
add_user = """INSERT INTO DB.tbluser 
              (username,link) 
              VALUES (%s,%s)"""

请注意,MysqL.connector使用的parameter markers可能与Python字符串格式化中使用的%s可能相同,但关系只是巧合.一些数据库适配器,如我们的sqlsqlite3使用?作为参数标记而不是%s.

猜你在找的MsSQL相关文章