我正在尝试调试使用以下命令生成的 SQL 语句sqlite3
蟒蛇模块...
c.execute("SELECT * FROM %s WHERE :column = :value" % Photo.DB_TABLE_NAME, {"column": column, "value": value})
当我执行以下操作时,它不返回任何行fetchall()
当我直接在数据库上运行它时
SELECT * FROM photos WHERE album_id = 10
我得到了预期的结果。
有没有办法查看构造的查询以了解问题所在?
要真正回答您的问题,您可以使用set_trace_callback附加打印功能的连接对象;这将使所有查询在执行时被打印。这是一个实际的例子:
# Import and connect to database
import sqlite3
conn = sqlite3.connect('example.db')
# This attaches the tracer
conn.set_trace_callback(print)
# Get the cursor, execute some statement as an example
c = conn.cursor()
c.execute("CREATE TABLE stocks (symbol text)")
t = ('RHAT',)
c.execute("INSERT INTO stocks VALUES (?)", t)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print(c.fetchone())
这会产生输出:
CREATE TABLE stocks (symbol text)
BEGIN
INSERT INTO stocks VALUES ('RHAT')
SELECT * FROM stocks WHERE symbol='RHAT'
('RHAT',)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)