带有%s的Python MySQL连接器数据库查询失败

2024-10-01 07:40:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个基本程序,它应该查询包含用户信息的数据库。我正在尝试为特定用户选择信息并将其打印到控制台。在

这是我的代码:

import mysql.connector

funcon = mysql.connector.connect(user='root', password='pass', host='127.0.0.1', database='fundata')
funcursor = funcon.cursor()

query = ("SELECT * FROM funtable WHERE userName=%s")
uName = 'user1'

funcursor.execute(query, uName)

for (userName) in funcursor:
    print("{}".format(userName))

我将用户名存储在一个变量中,因为稍后我计划从tkinter输入框中获取用户名。执行此代码时,出现以下错误:

^{pr2}$

我曾尝试在查询中用引号括起%s,但它确实搜索用户名“%s”,但没有返回任何结果。我的用户如何才能更改我的数据库代码?在

谢谢。在

仅供参考:我使用的是python3.3。在


Tags: 代码用户import程序信息数据库connectorconnect
1条回答
网友
1楼 · 发布于 2024-10-01 07:40:27

将您的funcursor.execute(query, uName)调用更改为:

funcursor.execute(query, (uName, ))

execute中的第二个参数接受字符串的列表/元组,而不是字符串。上面的调用在将字符串传递给execute之前创建元组,因此不会抛出错误。在

execute使用字符串列表/元组的原因是,它事先不知道需要多少字符串才能满足您的查询。在

相关问题 更多 >