我试图通过数据库中的id值选择行,并且我使用returns_rows
类的ResultProxy
属性检查是否在调用之前返回了一行fetchone()
。
为此,我代码:
book = db.execute("SELECT * FROM books WHERE isbn=:isbn", {"isbn": id})
if book.returns_rows is not True:
return "Not found."
book = book.fetchone()
// ...
根据documentation,如果返回至少一行,则应该返回True
。但即使数据库中不存在id
值, if语句也不会被评估为true。
任何人都可以帮助我理解为什么会这样吗?提前谢谢。
答案 0 :(得分:0)
改为使用cursor.fetchone() is not None
:
book = db.execute("SELECT * FROM books WHERE isbn=:isbn", {"isbn": id})
book = book.fetchone()
if book is None:
return "Not found."