나는 python 스크립트를 작성하여 HTML 페이지를 구문 분석하고 일부 문자열을 얻은 다음 mysql 테이블에 기록합니다. 데이터베이스 연결에 MySQLDb
모듈을 사용하고 있습니다. 검색된 문자열은 ISO-8859-7 (그리스어)로 인코딩되며, 이는 MySQL 테이블의 기본 인코딩이기도합니다. ,국제화 - Python MySQLDb 및 ISO-8859-7
def db_write(list) :
import MySQLdb as sql
try :
con = sql.connect(//database info here//)
except :
print "could not connect to database"
exit()
cur = con.cursor()
for i in my_range (8,len(list)-2,2) :
query = 'INSERT INTO as_doy VALUES (%s,"%s")' % (list[i],list[i+1])
print query
try :
cur.execute(query)
con.commit()
except :
print "failed"
con.rollback()
con.close()
난 ISO-8859-7에서 UTF-8, 디코딩 및 재 인코딩의 문자열을 인코딩하는 시도 ERROR 1366 (HY000): Incorrect string value: '\xEF\xBF\xBD\xEF\xBF\xBD...'
이다 얻을 예외 : 예외를 생성하는 코드는 다음과 같다 그러나 아무것도 나를 위해 아직 일하지 않고 있었다.
어떤 줄에 예외가 있습니까? –
try 블록이 실패하고 mysql 콘솔의 오류 코드가 발생합니다 –
이 스크립트는 SQL 삽입에 취약합니다. 이 값을 수정하면 (아마도 적절한 쿼리 매개 변수를 사용하여) 값이 (처음에는 저장되었지만) 올바르게 db에 전송 될 수 있습니다. –