9 개의 열이있는 테이블이 있습니다. 처음 세 개는 모든 텍스트이고 마지막 6 개는 INT로 설정됩니다.Python과 pymysql을 통해 MySQL에 삽입 할 수 없습니다
I 텍스트에 삽입
conn = pymysql.connect(host='', port=, user='', passwd='', db='')
cur = conn.cursor()
cur.execute("INSERT INTO table(Name) VALUES ('Sample Name')")
그 코드가 잘 실행 예상대로 모든 작품 필드, 내 데이터베이스에 이름을 삽입 할 날 수 있습니다. 그러나, 내 정수 물건에 대한 삽입 문을 실행하면 모든 종류의 문제가 있습니다.
나는 다음의 모든 시도했다 :
cur.execute("INSERT INTO table(Left Avg) VALUES (5)")
cur.execute("INSERT INTO table(Left Avg) VALUES (%s)", (5))
cur.execute("INSERT INTO table(Left Avg) VALUES (%s)" % (5))
cur.execute("""INSERT INTO mlb_data(Left Avg) VALUES (%s)""" % (5))
기본적으로 나는 다음과 같은 오류가 테이블에 내 정수를 삽입 할 때 내가하려고 상관없이.
Traceback (most recent call last):
File "testing.py", line 12, in <module>
cur.execute("""INSERT INTO mlb_data(Left Avg) VALUES (%s)""" % (5))
File "build/bdist.macosx-10.7-intel/egg/pymysql/cursors.py", line 117, in execute
File "build/bdist.macosx-10.7-intel/egg/pymysql/connections.py", line 189, in defaulterrorhandler
pymysql.err.ProgrammingError: (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Left Avg) VALUES (5)' at line 1")
나는이 포함 된 VARCHAR보다는 INT로 MySQL의 태블릿을 변경하려 시도했지만,에 관계없이 언제는 내가 오류가 번호를 삽입하려고합니다.
무엇이 여기에 있습니까?
편집 : 이전에 시도하지 않았거나 형식이 잘못되었지만 알아 냈는지 알 수 없습니다.
num = 5.23947824987
cur.execute("INSERT INTO mlb_data(LeftAvg) VALUES (%s)", (num,))
장애없이 작동합니다. 이게 맞습니까? 아니면 제가 아주 운이 좋았습니까?
(공간을 제거한),하지만 지금 다음과 같은 오류가 발생합니다. '파일 "testing.py", 11 행, cur.execute ("INSERT INTO mlb_data ('LeftAvg') VALUES (?)", (5)) 파일 "build/bdist.macosx-10.7 -intel/egg/pymysql/cursors.py "행 105, 실행 TypeError : 문자열 형식화 중에 모든 인수가 변환되지 않았습니다. –
열 이름 주변에서'''를 제거하십시오. MySQL에서 이스케이프 문자는' – aweis
왜 (5,)? 그냥 (5)하지 않아야합니까? – lxx