我试图找出如何从UserID获取单个值并在控制台中打印它。我目前的一段代码不断返回"无"即使我正在搜索的UserID有一个Currency值。
cursor.execute("SELECT Currency FROM ServerUsers WHERE USERID = %s" % (userid))
if cursor.fetchone():
a = cursor.fetchone()
print(a)
答案 0 :(得分:5)
当您致电execute
时,会计算并提取结果,并使用fetchone
/ fetchmany
/ fetchall
来检索它们。
在您的情况下,您的查询返回单行作为结果,因此在cursor.fetchone
中调用if
会导致获取结果并随后丢弃,因此对fetchone
的另一次调用将产生None
,因为指针已经超过结果集中的唯一行。
检查数据是否存在的惯用sqlite方法是查询一行,并测试其真实性 -
result = cursor.fetchone()
if result:
print(result)
答案 1 :(得分:0)
我遇到了与您相同的问题。我使用了Sqlite和Pycharm编辑器,通过刷新在Pycharm中使用的数据库(视图->工具窗口->数据库->刷新)来解决此问题。我知道成功率很低,但我希望这可以帮助某人遇到同样的问题。