본문 바로가기
파이썬

파이썬 Python MySQLdb TypeError : 문자열 형식화 중에 변환 된 모든 인수가 아닙니다.

by º기록 2020. 12. 23.
반응형

이 스크립트를 실행하면 :

#! /usr/bin/env python
import MySQLdb as mdb
import sys    

class Test:
    def check(self, search):
        try:
            con = mdb.connect('localhost', 'root', 'password', 'recordsdb');

            cur = con.cursor()
            cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search )

            ver = cur.fetchone()

            print "Output : %s " % ver

        except mdb.Error, e:

            print "Error %d: %s" % (e.args[0],e.args[1])
            sys.exit(1)

        finally:    
            if con:    
                con.close()

test = Test()
test.check("test")

다음과 같은 오류가 발생합니다.

./lookup 
Traceback (most recent call last):
  File "./lookup", line 27, in <module>
    test.check("test")
  File "./lookup", line 11, in creep
    cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search )
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 187, in execute
    query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting

나는 이유를 전혀 모른다. 매개 변수화 된 쿼리를 수행하려고하는데 고통에 지나지 않았습니다. 저는 Python을 처음 접했기 때문에 아마도 명백한 문제 일 것입니다.

 

해결 방법

 

대신 :

cur.execute( "SELECT * FROM records WHERE email LIKE '%s'", search )

이 시도:

cur.execute( "SELECT * FROM records WHERE email LIKE %s", [search] )


 

참조 페이지 https://stackoverflow.com/questions/21740359

 

 

반응형

댓글