我正试图找出如何从用户id中获取一个值并在控制台中打印它。我当前的代码一直返回“none”,即使我正在搜索的用户id有一个货币值。
cursor.execute("SELECT Currency FROM ServerUsers WHERE USERID = %s" % (userid))
if cursor.fetchone():
a = cursor.fetchone()
print(a)
最佳答案
调用execute
时,将计算并获取结果,并使用fetchone
/fetchmany
/fetchall
检索结果。
在您的例子中,查询返回一行作为结果,因此在cursor.fetchone
中调用if
将导致获取结果并随后丢弃结果,因此对fetchone
的另一个调用将产生None
结果,因为指针已经超过结果集中的唯一行。
检查数据是否存在的惯用SQLite方法是查询行并测试其真实性。
result = cursor.fetchone()
if result:
print(result)