Что я здесь делаю неправильно?Ошибка Python: требуется аргумент int
i = 0
cursor.execute("insert into core_room (order) values (%i)", (int(i))
Ошибка:
int argument required
Поле базы данных является INT (11), но я думаю, что я% генерирует ошибку.
Update:
Вот более тщательный пример:
time = datetime.datetime.now()
floor = 0
i = 0
попробовать: booster_cursor.execute ('вставить в core_room (extern_id, имя, порядок, unit_id, созданные, обновленные) значения (% s,% s,% s,% s,% s,% s) ', (строка [0], строка [0], i, пол, время, время,)) кроме исключения, e: print e
Ошибка:
(1064, "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 'order, unit_id, created, updated) values ('99', '99', '235', '12', '2009-07-24 1' at line 1")
Аргумент% i - это int в db. Мне нужно использовать% s? – slypete
@slypete: Да, используйте '% s'. MySQLdb использует 'format' в качестве параметра' paramstyle' по умолчанию. PEP 249 для получения дополнительной информации: http://www.python.org/dev/peps/pep-0249/ – bernie
Если я использую% s, я получаю SQL-ошибку с сервера MySQL. – slypete