并非在SQL语句中使用了所有参数(Python,MySQL)

发布于 2021-02-02 16:27:27

我在以下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, %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

你知道为什么吗

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    参数标记%s不是%d

    add_user = """INSERT INTO DB.tbluser 
                  (username, department, startyear, currentpos, link) 
                  VALUES (%s, %s, %s, %s, %s)"""
    

    请注意,所使用的参数标记mysql.connector可能看起来与%sPython字符串格式中使用的参数标记相同,但关系只是巧合。一些数据库适配器喜欢oursqlsqlite3使用?的参数标记代替%s



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看