Я пытаюсь выполнить базовый оператор INSERT
для таблицы MySQL из скрипта Python, используя MySQLdb. Мой стол выглядит так:
CREATE TABLE `testtable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`testfield` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
Выполнение этого запроса из командной строки MySQL работает нормально:
INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');
Но когда я пытаюсь выполнить запрос из скрипта Python, строки не вставляются. Вот мой код:
conn = MySQLdb.connect(host=db_host, port=db_port, user=db_user, passwd=db_password, db=db_database)
cursor = conn.cursor ()
cursor.execute ("INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue')")
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close()
conn.close()
Как ни странно, будет напечатано «Количество вставленных строк: 1.» Я также могу подтвердить, что этот запрос увеличивает поле идентификатора, потому что, когда я добавляю еще одну строку через командную строку, значение ее идентификатора остается таким же, как если бы скрипт Python успешно вставил свои строки. Однако выполнение запроса SELECT
не возвращает ни одной строки из сценария.
Есть идеи, что не так?