gpt4 book ai didi

Python、MySQLConnector、MySQLCursor.fetchall() 抛出 'No result set' 错误,尽管查询返回行

转载 作者:行者123 更新时间:2023-11-29 17:20:43 25 4
gpt4 key购买 nike

我有一个简单的 Python 3 脚本,使用 MySQLConnector 访问数据库。独立运行相同的查询(通过 PHPMyAdmin)会返回我期望的结果;包含用户计数的单行。但是,当我执行脚本时,会抛出异常,因为没有返回结果。

我的脚本:

     connection = self.Connect()

cursor = connection.cursor()

query = 'SELECT COUNT(UserName) FROM ig_UserAccounts WHERE UserName=\'TestUser\''

cursor.execute(query)

results = cursor.fetchall()

异常消息:

     mysql.connector.errors.InterfaceError: No result set to fetch from.

Same query executed successfully in PHPMyAdmin

我在 self.Connect() 方法中验证了数据库连接的完整性,如下所示,并且还使用 INSERT 语句对其进行了测试,以确认连接有效:

     try:
connection = mysql.connector.connect(user=self.username, password=self.password, host=self.hostname, database=self.databaseName)

except mysql.connector.Error as e:
if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Invalid database username or password")
return None

elif e.errno == errorcode.ER_BAD_DB_ERROR:
print("Invalid database name")
return None

else:
print(e)
return None

return connection

我还尝试使用 fetchone() 方法代替 fetchall(),但这只是返回 None 类型。

最佳答案

我现在已经解决了这个问题,这似乎是调试问题(在 Visual Studio 2017 中)。如果我在脚本的早期放置断点并逐行跳过 execute()fetchall(),则结果集会在行之间清空。

但是,如果我仅在脚本末尾放置断点来暂停执行,结果集将按预期填充。

关于Python、MySQLConnector、MySQLCursor.fetchall() 抛出 'No result set' 错误,尽管查询返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com