2017-10-26 1 views
0
import mysql.connector 
conn = mysql.connector.connect(host="localhost",user="root",password="password", database="database_name") 
cursor = conn.cursor() 
a = "abcd" 
cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES (?)", (a)) 

내가 스크립트를 실행할 때이 내가 오류입니다에 오류 : 도움을파이썬와 MySQL : 간단한 INSERT

ProgrammingError: 1064 (42000): Syntax error near to '?)' at line 1 

덕분에, 난 정말 이유를 이해하지 않습니다.

답변

1

SQL 코드에 변수 a를 삽입하는 것이 좋지만 작동하지 않습니다. 파서가 "?"

cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES ({})".format(a)) 

또는 (다소 python2 방식으로) : 당신은 그것을

당신이 시도 할 수 있었다 "ABCD"가 원하는 위치

cursor.execute("INSERT INTO table_jeux (lien_fiche) VALUES (%s)", (a,)) 

여기에 설명 된대로 : https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html

+0

, 나는 그것을 시도하지만 쉼표 선수입니다. 감사. – Diamonds

0

f 문자열을 사용해보십시오.

somethi처럼 보입니다. 예 :

cursor.execute(f'INSERT INTO student (student_name, student_email, courseid) VALUES ("{student_name}","{student_email}",{course_id})') 

여기서 student_name, student_email 및 course_id는 모두 변수입니다. 귀하의 경우에는

: 두 번째는 완벽하게 작동하고

cursor.execute(f'INSERT INTO table_jeux (lien_fiche) VALUES ("{a}")') 
+0

작동하지 않지만 도움을 주셔서 감사합니다. – Diamonds

+0

아마도 파이썬 2를 사용하고 있습니까? – user3140379

+0

예 파이썬 2를 사용하고 있습니다. – Diamonds