2012-12-25 2 views
1

SQLite (Python 2.7의 sqlite3 모듈)의 인코딩에 문제가 있습니다. 두 개의 열이있는 테이블이 있습니다 : (text_number int, word text). word에는 숫자, 영어 및 러시아어가 있습니다.Python : Sqlite 쿼리의 인코딩

word = search_word 인 테이블에서 모든 문자열을 찾아야합니다. search_word가 숫자 인 경우

, 나는 아무 문제가 없다 :

search_word = '146' 
lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word) 
for w in lenta_u_w : 
    print w 

(361, u'146') 같은 것을 제공합니다.

search_word = u'android' 
lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word) 
for w in lenta_u_w : 
    print w 
>>>lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word) 
OperationalError: no such column: android 

나는 등 디코드의 여러 버전을 시도하고, 그러나 아무것도 나를 도울 수 있습니다 :

그러나

는 문자의 다른 어떤 종류가 작동하지 않습니다.

+0

sqlite3 패키지를 사용하고 있습니까? – seliopou

답변

2

를 사용하여 매개 변수를 구성하고 적절한가 인용하고 당신을 위해 탈출 할 것 쿼리, 실행할 때 :

c.execute('SELECT * FROM lenta WHERE word = ?', (search_word,)) 

자세한 내용은 sqlite3를 패키지의 Cursor 클래스 the documentation를 참조하십시오.