我正试图找出如何从用户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)

10-06 05:11