MySQL查询返回旧结果

时间:2019-04-03 09:28:59

标签: python mysql python-3.x

我正在使用python 3.6和mysql.connector从我的MySQL数据库中查询数据。

我注意到一个奇怪的效果:mysql.connector似乎以某种方式缓存了结果。如果我将db之间的数据更改为查询之间,则查询仍然返回相同的(过时的)结果。

仅当我重新启动python脚本时,我才从mysql.connector获取新数据。

db = mysql.connector.connect(
    host="localhost",
    user="...",
    passwd="...",
    database="..."
)

cursor = db.cursor(dictionary=True, buffered=True)
cursor.execute('SELECT `name` FROM `users` WHERE `uid`=1')
print(cursor._rows[0])
cursor.close()

返回:

(bytearray(b'Old Username'),)

现在,我使用phpmyadmin更改该用户的用户名:

UPDATE `users` SET `name` = 'New Username' WHERE `users`.`uid` = 1;

然后我在python控制台中重复查询:

cursor = db.cursor(dictionary=True, buffered=True)
cursor.execute('SELECT `name` FROM `users` WHERE `uid`=1')
print(cursor._rows[0])
cursor.close()

返回:

(bytearray(b'Old Username'),)

当我重新启动python控制台并再次查询时,我得到了新的用户名。

好像mysql.connector并没有真正运行该查询,而是传递了一些缓存的结果...我该如何关闭呢?

0 个答案:

没有答案