为什么在这个Python/MySQL搜索中返回的值为none

Why is the returned value is none in this Python/MySQL search

我有这个小代码

cquery = "SELECT * FROM `workers` WHERE `Username` = (%s)"
cvalue = (usernameR,)
flash(cquery)
flash(cvalue)
x = c1.execute(cquery, cvalue)
flash(x)

usernameR 是一个字符串变量我从表单中得到它的值

x 应该是行数或某个值,但它 returns none 我需要它的价值 if.

我用一行中 table 中的值对其进行了测试,所以情况并非如此,即值不存在或其他情况。但如果在那种情况下它不存在,x 应该 return 0 或其他东西。

几个小时后我无法解决问题。

cvalue 的值:

('Csabatron99',)

编辑解决方案:

我需要将 rowcountfetchall 添加到代码中,如下所示:

cquery = "SELECT * FROM `workers` WHERE `Username` = (%s)"
cvalue = (usernameR,)
flash(cquery)
flash(cvalue)
c1.execute(cquery, cvalue)
c1.fetchall()
a = c1.rowcount

cursor.execute() 在正常情况下不会 return 任何东西。如果您使用 multi=True 参数,它 return 是一个迭代器,用于从多个查询中的每一个查询中获取结果。

要获取查询 return 的行数,请使用 rowcount 属性。

c1.execute(cquery, cvalue)
flash(c1.rowcount)