이 사이트와 다른 많은 사이트에서 높거나 낮게 검색 한 적이 있고 비슷한 질문을 찾았지만 어느 것도 대답이 없었습니다. (대개 튜플을 고려해야합니다). 나는 html 페이지를 파싱하고 데이터베이스를 채우기 위해 파이썬 스크립트를 작성하고있다. 나는 거의 모든 것이 여기 MySQLdb가 실행됩니다.
MySQL 데이터베이스를 다루는 코드 세그먼트입니다 ... 채우는 부분을 제외하고 작업을했다 (참고 : 파이썬에서 MySQLdb 모듈 사용) 내가 처음 구문 분석과 테스트를했다conn = MySQLdb.connect(user="root", passwd="xxxxx",db="nutrients")
cur = conn.cursor()
test = "Canned Corn"
cur.execute("INSERT INTO food (name) VALUES (%s)", (test,))
conn.commit()
을 문자열이지만 작동하지 않습니다.
역 추적 (마지막으로 가장 최근 통화) : 파일이 내게이 오류 준다 "C : \ Python32 \ lib 디렉토리의 \ 사이트 - 패키지 \ MySQLdb \ cursors.py", 라인 (171)에서 실행 R = self._query (query) 파일 "C : \ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py", 330 행의 _query에 rowcount = self._do_query (q) 파일 "C : \ Python32 \ lib (1064, "SQL 구문 에서 오류가 발생했습니다. 해당 SQL 문에 해당하는 설명서를 확인하십시오. 오른쪽에있는 MySQL 서버 버전C : \ Python32 \ lib 디렉토리의 \ 사이트 - 패키지 \ MySQLdb \ cursors.py ", 라인 : 617,451,515,yntax 라인 1" 파일) 마지막
역 추적 (가장 최근 통화) "에서 ') % s의'근처를 사용하는 171, 실행 중 r = self._query (쿼리) 파일 "C : \ Python32 \ lib \ site-packages \ mysql \ cursors.py", 줄 330, _query에 rowcount = self._do_query (q) 파일 "C : \ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py"294 줄의 _do_query에 있습니다. db.query (q) _mysql_exceptions.ProgrammingError : (1064, "SQL 구문에 오류가 있습니다. ; 1 호선에서 ') % s의'근처를 사용할 수있는 권리의 yntax ")에 대한 귀하의 MySQL 서버 버전에 해당하는 설명서를 확인
!? 작동하지 않습니다
업데이트 : 거의 내 머리카락을 꺼낸 후에 2.7.3으로 돌아가서 모든 것이 작동 함을 알았습니다. D가 그 유형의 오류 였음을 알고 있었음에 틀림 없습니다 ... 도와 주셔서 감사합니다. !
@ user145896 테이블에있는 유일한 열은 이름입니까? – jcho360
다음과 같이 문자열을 cat으로 시도해보십시오. str = "INSERT INTO food (name) VALUES"+ test 그리고 cur.execute (str) –
@ jcho360 아니요. SQL의 데이터 – Odub