Почему функция "insert" не добавляет строки с помощью MySQLdb?
Я пытаюсь выяснить, как использовать библиотеку MySQLdb в Python (я новичок в лучшем случае для обоих из них).
Я после кода здесь, а именно:
cursor = conn.cursor ()
cursor.execute ("DROP TABLE IF EXISTS animal")
cursor.execute ("""
CREATE TABLE animal
(
name CHAR(40),
category CHAR(40)
)
""")
cursor.execute ("""
INSERT INTO animal (name, category)
VALUES
('snake', 'reptile'),
('frog', 'amphibian'),
('tuna', 'fish'),
('racoon', 'mammal')
""")
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close ()
conn.close ()
Я могу изменить этот код для создания или удаления таблиц, но я не могу заставить его фактически зафиксировать INSERT
. Он возвращает row.count
значение, как ожидалось (даже когда я изменяю значение в таблице, оно меняется на то, что я ожидаю).
каждый раз, когда я смотрю в база данных с PHPMyAdmin вставок не производится. Как мне совершить INSERT
в базе данных?
1 ответов
Вы забыли commit
изменения данных, автокоммит отключен по умолчанию:
cursor.close ()
conn.commit ()
conn.close ()
цитирую написание MySQL скриптов с Python DB-API документы:
" метод Connection object commit() фиксирует все внесенные изменения в текущей транзакции сделать их постоянными в базе данных. В DB-API, соединения начинаются с отключенного режима автокоммита, поэтому вы должны вызов commit () перед отключением или изменениями может быть потерянный."