我已经使用 python MySQLdb 模块进行了两个 mysql db 连接,db
即db1
. 第一个连接用于读取表,第二个连接用于更新表。以下是我使用的代码序列。
1:使用连接从用户表中读取id db
;当前值“Y”
2:使用连接将用户表中的 id 更新为“N” db1
。
db
3:使用连接从用户表中读取 id 。但是此时它给出了值'Y'。
import MySQLdb
db = MySQLdb.connect("localhost","root","test007","db",charset='')
apikey="123"
cursor=db.cursor() ## fetching no. of data received in valid time range
cursor.execute("select id from USER where apikey=%s",(apikey,))
data=cursor.fetchone()
cursor.close()
print data #current value 'Y'
db1 = MySQLdb.connect("localhost","root","test007","db",charset='')
cursor=db1.cursor() ## fetching no. of data received in valid time range
cursor.execute("update USER set id='N' where apikey=%s",(apikey,))
db1.commit()
cursor.close()
db1.close()
cursor=db.cursor() ## fetching no. of data received in valid time range
cursor.execute("select id from USER where apikey=%s",(apikey,))
data=cursor.fetchone()
cursor.close()
print data
db.close()
在第 3 步中,它不显示更新的值。为什么会这样?如何在不关闭连接db
并在更新后使用另一个连接来读取表的情况下解决此问题?
这不是实际的代码实现。db1 实际上是从其他文件运行的。为简单起见,我只是展示了这一点。