gpt4 book ai didi

python - 使用 python-mysql、tornado 框架检索列值

转载 作者:行者123 更新时间:2023-11-29 23:24:14 24 4
gpt4 key购买 nike

我正在开发一个Web应用程序,使用tornado框架和mysql-python作为数据库连接器。

需求是这样的 - 当用户登录并说购买产品时,数据库有一个表,其中包含 userid 以及所有与产品相关的列,应更新这些列。

所以有一个user表,productsbought表。假设有 5 个用户,id 分别为 1,2,3,4,5。因此,当用户 3 购买产品时,productsbought 表将使用用户 id 3 以及他购买的产品的所有详细信息进行更新。

解决问题。

username = self.current_user
print username # prints correct username say thirduser with id 3
db = MySQLdb.connect(host='localhost', user='root', db= 'db')
uid = None
cur = db.cursor()

uid = cur.execute("""Select userid from user_table where username = %s """, (username,))

print uid # should display 3, but displays 1

cur.execute("""INSERT INTO productsbought (userid, pid, pname, model) VALUES ( %s, %s, %s, %s)""", (uid, pid, pname, model,))
# The insert is working fine but for the wrong user.

现在,这个 uid 理想情况下应该打印 3(与已登录应用程序的 Thirduser 对应的 id)。但它的打印1。

因此,无论谁登录,他们的用户名都会正确显示,但他们的 userid 会被视为 1,并且 productsbought 表会针对第一个用户进行更新。

在mysql中我查询

select userid from user_table where username = "thirduser"

并且正确显示 3。

所以一切看起来都很好,但有一些问题!这让我抓狂。请帮帮我!!

最佳答案

您是否尝试过将 %s 用引号引起来?另外,self.currentuser周围是否可能有一些空格?

我会尝试:

uid = cur.execute("""SELECT userid FROM user_table WHERE username='%s'""", (username,))

关于python - 使用 python-mysql、tornado 框架检索列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27081559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com