【发布时间】:2012-03-07 12:28:40
【问题描述】:
我正在使用 Python 的 MySQLdb 模块(Windows Python 2.7 的 v1.2.3 预编译二进制文件)来读取数据并将数据写入 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)
【问题讨论】:
标签: python mysql mysql-python database-cursor