2011-08-04 5 views
7

저는 파이썬 응용 프로그램에서 Sqlite3 데이터베이스를 사용하고 매개 변수 대체를 사용하여 쿼리합니다. 예를 들어
: 일부 쿼리가 제대로 결과를 반환하지 않고 내가 그들을를 기록하고 수동으로 SQLite는 쿼리하려고 싶습니다Sqlite3에서 파이썬으로 쿼리를 어떻게 기록 할 수 있습니까?

cursor.execute('SELECT * FROM table WHERE id > ?', (10,)) 

.
물음표 대신 매개 변수를 사용하여 이러한 쿼리를 어떻게 기록합니까?

+0

[this] (http://stackoverflow.com/questions/1607368/sql-query-logging-for-sqlite) 질문과 유사하게 보이지만,이 예는 Python을 지정하지 않습니다. 도움이되는지 확인하십시오. – thegrinner

답변

-1

는 로그 기능이 있다고 가정을 먼저 그것을 호출 할 수 있습니다

query, param = 'SELECT * FROM table WHERE id > ?', (10,) 
log(query.replace('?', '%s') % param) 
cursor.execute(query, param) 

그래서 당신은 모든 쿼리를 수정하지 않는 .

또한, 이것은 Sqlite와 관련이 없습니다.

+4

잘못된 결과가 나타납니다. Sqlite는 문자열이있을 때 데이터를 이스케이프합니다. – balrok

8

파이썬 3.3 sqlite3.Connection.set_trace_callback 있습니다

import sqlite3 
connection = sqlite3.connect(':memory:') 
connection.set_trace_callback(print) 

당신은 인수로 제공하는 기능이 실행되는 모든 SQL 문에 대해 호출됩니다. print 대신 logging 모듈의 기능을 사용할 수 있습니다.

관련 문제