Почему моя MySQLdb не работает? (Python) [закрыто]

Я хочу выполнить запрос к базе данных из python:

import MySQLdb

mydb = MySQLdb.connect(host='127.0.0.1', user='root', passwd='', db='macadd', port=3306)
c = mydb.cursor()
c.execute("""INSERT INTO macadd.scanned (mac, first_time_seen, last_time_seen) VALUES (%s, %s, %s)""", ("0A:1B:2C:3D:4E:5F", "2015-09-20 19:00:18", "2015-09-20 19:03:57"))

mydb.close()
print "Done"

Это мой запрос для ввода значения в мою базу данных. Когда я выполнил, он сказал, что сделано и ничего плохого. Но когда я смотрю на данные, ничего не появляется. Моя таблица пуста.

Но когда U использует модуль _mysql :

import _mysql

mydb = _mysql.connect(host='127.0.0.1', user='root', passwd='', db='macadd', port=3306)
mydb.query("INSERT INTO macadd.scanned (mac, first_time_seen, last_time_seen) VALUES ('0A:1B:2C:3D:4E:5F', '2015-09-09 00:00:00', '2015-09-02 00:00:00')")
print "done"

Он также сказал, что сделано, ничего плохого, и когда я смотрю на данные, есть одна запись, которая была импортирована.

На самом деле я хотел бы использовать Модуль MySQLdb вместо модуля _mysql для выполнения этого кода:

("""INSERT INTO macadd.scanned (mac, first_time_seen, last_time_seen) VALUES (%s, %s, %s)""", ("0A:1B:2C:3D:4E:5F", "2015-09-20 19:00:18", "2015-09-20 19:03:57"))

Но я не знаю, почему он не работает. Кто-нибудь знает, как заставить это работать, чтобы я мог использовать модуль MySQLdb?

0
задан 8 October 2015 в 12:03

1 ответ

Транзакция поддержки БД Mysql. Согласно PEP-249:

"если поддержка БД функция автоматической фиксации, это должно быть первоначально прочь", и "закрытие соединения, не фиксируя изменений сначала заставит неявный откат быть выполненным".

Вы можете

звонить mydb.commit() передавать Ваши изменения в дб

или

(nephente) использование автоматической фиксации набора mydb.autocommit(True)

3
ответ дан 1 October 2019 в 01:09

Другие вопросы по тегам:

Похожие вопросы: