13

执行以下操作时:

import pymysql 



db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor()    
print(cur.execute("SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='" + UserID + "'"))

输出是1

如何更改代码以便打印 ParentGuardianID 的实际值(即“001”)而不是1.

我相信答案很简单,但我是初学者,所以任何帮助将不胜感激 - 谢谢!

4

2 回答 2

28

cur.execute()只返回受影响的行数。您应该这样做cur.fetchone()以获得实际结果,或者cur.fetchall()如果您期望多行。

于 2015-02-15T20:15:49.193 回答
21

cursor.execute()方法给出一个与SQL语句结果相关的游标。在select查询的情况下,它返回满足它的行(如果有的话)。因此,您可以使用例如循环来迭代这些行for。此外,我建议您使用pymysql.cursors.DictCursor它,因为它允许将查询结果视为字典。

import pymysql 
db = pymysql.connect(host='localhost', port=3306, user='root')
cur = db.cursor(pymysql.cursors.DictCursor)

UserId = 'whatsoever'
sql = "SELECT ParentGuardianID FROM ParentGuardianInformation WHERE UserID ='%s'"
cur.execute(sql % UserId)
for row in cur:
    print(row['ParentGuardianID'])

祝你好运!

于 2016-04-19T15:27:00.943 回答