У меня есть таблица с 9 столбцами, первые три — текст, а последние 6 — INT.
Когда я вставляю в текстовые поля, все работает как положено
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")
Я попытался изменить планшет MySQl на VarChar, а не на INT, но каждый раз, когда я пытаюсь вставить число, я получаю сообщение об ошибке.
Что мне здесь не хватает?
РЕДАКТИРОВАТЬ: я не знаю, не пробовал ли я это раньше или мое форматирование было неправильным, но я понял это.
num = 5.23947824987
cur.execute("INSERT INTO mlb_data(LeftAvg) VALUES (%s)", (num,))
Работает без сбоев. Так ли это, или мне просто очень повезло?