Ответ 1
Ты это сделал? conn.commit()
Я запускаю это из PyDev в Eclipse...
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='userid', passwd='password', db='fan')
cur = conn.cursor()
print "writing to db"
cur.execute("INSERT INTO cbs_transactions(leagueID) VALUES ('test val')")
print "wrote to db"
В результате в верхней части консоли отображается C:... test.py и в консоли:
запись в db написал db
Поэтому он не заканчивается до выполнения команды execute. Но когда я смотрю в таблицу в MySQL, он пуст. Запись не вставлена.
Прежде всего, почему он не пишет запись. Во-вторых, как я могу увидеть журнал или ошибку, чтобы узнать, что произошло. Обычно, если код не работает, должна произойти некоторая ошибка.
Ты это сделал? conn.commit()
PyMySQL отключает autocommit
по умолчанию, вы можете добавить autocommit=True
для connect()
:
conn = pymysql.connect(
host='localhost',
user='user',
passwd='passwd',
db='db',
autocommit=True
)
или вызовите conn.commit()
после вставки
Вы можете сделать
conn.commit()
перед вызовом close
или же
conn.autocommit(True)
сразу после создания объекта подключения.Оба варианта были предложены разными людьми при дублировании вопроса, который можно найти здесь: База данных не обновляется автоматически с MySQL и Python