为什么sqlite数据库查询在python代码中什么都不返回?

时间:2021-06-12 11:48:26

标签: python sqlite

我想在我现有的和填充的数据库上运行这个查询:

SELECT queries_left FROM 'queries' WHERE 'user_id' = 12345

它在 SQLiteStudio 上运行流畅并给出所需的整数值。

我想通过python运行这个查询,所以我尝试了以下:

def user_status(self, user_id):
    with self.connection:
        return self.cursor.execute("SELECT queries_left FROM 'queries' WHERE 'user_id' = ?", (user_id,)).fetchall()

但是调用user_status(12345) 只返回[]

那有什么问题?

注意:其中 user_id - 数据库中已经存在的某个整数

1 个答案:

答案 0 :(得分:0)

不要在表名和列名周围加上单引号:

def user_status(self, user_id):
    with self.connection:
        return self.cursor.execute("SELECT queries_left FROM queries WHERE user_id = ?", (user_id,)).fetchall()

单引号表示字符串文字。如果确实需要对表名或列名进行转义,请使用双引号。以下内容也应该有效:

def user_status(self, user_id):
    with self.connection:
        return self.cursor.execute('SELECT queries_left FROM "queries" WHERE "user_id" = ?', (user_id,)).fetchall()