<p>我正在开发一个web应用程序,使用tornado框架和mysql python作为数据库连接器。在</p>
<p>需求是这样的-当用户登录并说购买了一个产品时,数据库有一个具有userid的表,以及所有与产品相关的列,这些列都应该更新。在</p>
<p>所以有一个usertable,productsbound表。假设有5个id为1、2、3、4、5的用户。
因此,当用户3购买产品时,productsbound表将更新为用户id 3和他购买的产品的所有详细信息。在</p>
<p>问题来了。在</p>
<pre><code>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.
</code></pre>
<p>现在,理想情况下,这个uid应该打印3(对应于已登录到应用程序的thirduser的id)。但它的印刷1。在</p>
<p>因此,无论谁登录-他们的用户名都会正确显示,但是他们的userid被认为是1,并且productsbound表正在为firstuser更新。在</p>
<p>在mysql中我查询</p>
^{pr2}$
<p>它正确地显示了3。在</p>
<p>所以一切看起来都很好,但是有点不对劲!!
这让我发疯了。请帮帮我!!在</p>