Я использую модуль MySQLdb для Python (предварительно скомпилированный двоичный файл v1.2.3 для Windows Python 2.7) для чтения и записи данных в базу данных MySQL. После того, как соединение открыто, я могу использовать это соединение, чтобы наблюдать изменения, внесенные в базу данных для того же соединения, но не вижу изменений, сделанных с использованием другого соединения, независимо от того, было ли другое соединение выполнено в Python или есть изменение, сделанное с использованием клиент командной строки MySQL. В случае, когда я делаю обновления с использованием Python, обратите внимание, что я выполняю команду commit () для соединения.
Пример программы, которая вставляет новые записи в тестовую таблицу с одним столбцом VARCHAR:
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
c = conn.cursor()
c.execute("INSERT INTO test VALUES(%s)", ("Test",))
conn.commit()
c.close()
conn.close()
Пример программы, которая завершает печать с постоянным счетом записей (вместо печати самого последнего счетчика записей). Я смог обновить счет только путем удаления и повторного запуска сценария или открытия нового соединения каждый раз, когда выполняется оператор SELECT
.
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
while True:
input = raw_input("Enter anything: ")
if input == "exit":
break
c = conn.cursor()
c.execute("SELECT COUNT(*) FROM test")
res = c.fetchone()[0]
c.close()
print("Number of records: %d" % res)