-1

所以我试图为自己创建一个密码管理器,使用 python 和 mariadb。在创建了一个名为 pw 的表后,其中包含 Name、Account 和 Passwords 3 列,我尝试创建一个函数(Search_Passwords(app_name)),我可以使用它输入关键字在数据库中搜索,它会给我权利密码。但是,我遇到了这个错误消息: Commands out of syncs 错误消息。

我是 python 和 mariadb 的新手(由于某种原因 MySQL 无法正常工作。),试图查找一些答案,但仍然无法弄清楚。有人可以帮忙吗?以下是我认为可能相关的其他代码。

这是 mariadb 的表的样子。

Search_Passwords()

类 UseDataBase

这是我在网上找到的作为 Search_Passwords() 涉及的参考版本。

对不起,如果我的代码不完美...... :(

4

1 回答 1

1

MariaDB 连接器/Python 默认使用无缓冲的结果集,这意味着在执行另一个游标之前,需要获取所有待处理的结果集或需要关闭游标。

例如下面的脚本

import mariadb

conn= mariadb.connect()
cursor1= conn.cursor()
cursor1.execute("select 1 from dual")
cursor2= conn.cursor()
cursor2.execute("select 2 from dual")

会抛出异常Mariadb.InterfaceError: Commands out of sync; you can't run this command now

为避免这种情况,您需要创建一个缓冲游标:

cursor1= conn.cursor(buffered=True)
于 2021-02-28T21:57:27.627 回答