【问题标题】:ValueError: Could not process parameters for MYSQL syntax [duplicate]ValueError:无法处理 MYSQL 语法的参数 [重复]
【发布时间】:2020-04-14 10:13:09
【问题描述】:
import mysql.connector

mydb = mysql.connector.connect(host= 'localhost', user='root', passwd="barbie", db='data')

mycursor = mydb.cursor() #execute, fetch data act as a pointer
print("Connected to database")
query = ("select name , matric from users where username = %s")
username = 'shawn'
mycursor.execute(query, (username))
print ("Fetching single row")
record  = mycursor.fetchone
print (record)

错误

为什么会出现这种错误?我只想显示该行。

我的数据库中的表

【问题讨论】:

    标签: python mysql


    【解决方案1】:

    错误是您将参数传递给execute 的方式。 execute 采用可迭代(列表/元组),但您传递的是单个值。下面两行是等价的

    (username)
    username
    

    要创建一个只有 1 个元素的元组,您需要添加一个逗号 (,)

    mycursor.execute(query, (username, ))
    

    【讨论】:

    • 为什么我得到输出'连接到数据库获取单行 > 的绑定方法 CMySQLCursor.fetchall ?
    • 我希望能够显示他们的名字和矩阵
    • 你需要调用 fetchone - record = mycursor.fetchone()
    猜你喜欢
    • 2021-08-22
    • 2019-08-06
    • 2021-12-26
    • 2019-01-27
    • 2019-06-28
    • 2022-12-11
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多