我在我的Python應用程序中使用Sqlite3數據庫,並使用參數替換查詢它。
例如:如何使用Python在Sqlite3中記錄查詢?
cursor.execute('SELECT * FROM table WHERE id > ?', (10,))
某些查詢不正確的返回結果和我想記錄他們,並嘗試手動查詢sqlite的。
如何使用參數而不是問號記錄這些查詢?
我在我的Python應用程序中使用Sqlite3數據庫,並使用參數替換查詢它。
例如:如何使用Python在Sqlite3中記錄查詢?
cursor.execute('SELECT * FROM table WHERE id > ?', (10,))
某些查詢不正確的返回結果和我想記錄他們,並嘗試手動查詢sqlite的。
如何使用參數而不是問號記錄這些查詢?
假設你有一個日誌功能,你可以先叫它:
query, param = 'SELECT * FROM table WHERE id > ?', (10,)
log(query.replace('?', '%s') % param)
cursor.execute(query, param)
所以你完全不修改您的查詢。
此外,這不是Sqlite特有的。
這會產生錯誤的結果。 Sqlite會在你的數據包含字符串時逃脫 – balrok
的Python 3.3擁有sqlite3.Connection.set_trace_callback:
import sqlite3
connection = sqlite3.connect(':memory:')
connection.set_trace_callback(print)
您提供的參數的函數被調用爲所執行的每個SQL語句。您可能需要使用logging
模塊中的功能,而不是print
。
看起來像[this](http://stackoverflow.com/questions/1607368/sql-query-logging-for-sqlite)問題,雖然該示例沒有指定Python。看看它是否有幫助。 – thegrinner