cursor.fetchone()即使值存在也返回None

cut*_*ute 1 python database sqlite python-3.x

我试图弄清楚如何从UserID中获取单个值并在控制台中将其打印出来。我当前的代码段始终返回“ None”,即使我正在搜索的UserID的Currency值也是如此。

cursor.execute("SELECT Currency FROM ServerUsers WHERE USERID = %s" % (userid))
    if cursor.fetchone():
        a = cursor.fetchone()
        print(a)
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

调用时execute,将计算并获取结果,然后使用fetchone/ fetchmany/ fetchall检索它们。

在你的情况,你的查询返回一个单一行作为结果,因此调用cursor.fetchoneif导致的结果是牵强,随后扔掉,所以其他呼叫fetchone将产生None的指针已经提前过去在结果集的唯一一行。

检查数据是否存在的惯用sqlite方法是查询一行并测试其真实性-

result = cursor.fetchone()
if result:
    print(result)
Run Code Online (Sandbox Code Playgroud)