加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:11:18 所属栏目:MsSql教程 来源:网络整理
导读:我在以下 Python代码中收到错误: import mysql.connectorcnx = mysql.connector.connect(user='root',password='',host='127.0.0.1',database='DB')cursor = cnx.cursor()Name = "James"Department = "Finance"StartYear = 2001CurrentPos = 2001Link = ""ad
我在以下 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可能相同,但关系只是巧合.一些数据库适配器,如我们的SQL和sqlite3使用?作为参数标记而不是%s.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读