Python,mysql.connector 错误 : No Result Set to Fetch From; cgitb shows correct value being passed to function

标签 python mysql set

好吧,这个让我感到困惑,所以我决定看看是否可以在这里找到答案,我上下搜索了几个 stackoverflow 问题和答案,但似乎没有任何效果。我想做的只是使用 mysql.connector 的 SELECT * FROM 语句,我不断收到“无结果集”错误。这是代码:

def session_fetch(value1):
    cnx = mysql.connector.connect(user='xxx', password='xxx', 
    host='127.0.0.1', database='xxx') 
    cursor = cnx.cursor()
    query = ("SELECT * FROM sessionkeys "
             "WHERE clientName='%s';") % value1 
    cursor.execute(query)
    row = cursor.fetchall()
    results = len(cursor.fetchall())
    clientName, clientAddr, unLocker = row[1], row[2], row[3]
    cnx.commit()
    cursor.close()
    cnx.close()

cgitb 的错误显示: C:\inetpub\wwwroot\flighttoolsbz\validator.py in session_fetch(value1='ericdsmith86')
162 cursor.execute(查询)
163 行 = cursor.fetchall()
=> 164 个结果 = len(cursor.fetchall())
165 clientName, clientAddr, unLocker = 行[1], 行[2], 行[3]
166 cnx.commit()

接口(interface)错误:没有可从中获取的结果集。
args = (-1, '没有可从中获取的结果集。', None)
错误号 = -1
msg = '没有可从中获取的结果集。'
sqlstate = 无
with_traceback = InterfaceError对象的内置方法with_traceback

但是当我通过 MySQL 工作台并使用相同的输入值运行相同的查询时,它返回了我正在寻找的一行,所以它肯定在那里。我唯一能想到的是 %s 格式化程序没有将传递给函数的内容作为“value1”。我错过了什么?

最佳答案

您调用了 cursor.fetchall() 两次。你不应该那样做。

改变:

row = cursor.fetchall()
results = len(cursor.fetchall())
clientName, clientAddr, unLocker = row[1], row[2], row[3]

收件人:

rows = cursor.fetchall()
results = len(rows) 
if results > 0:
    row = rows[0]
    clientName, clientAddr, unLocker = row[1], row[2], row[3]

虽然它与您当前的问题没有任何关系,但您应该使用参数化查询:

query = "SELECT * FROM sessionkeys WHERE clientName=?" 
cursor.execute(query, (value1,))

关于Python,mysql.connector 错误 : No Result Set to Fetch From; cgitb shows correct value being passed to function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44232426/

相关文章:

PHP 和 MySQL 搜索大量列

python - 使用集合(列表)理解的对称集合差异未给出预期结果

C++ STL 迭代器

mysql - 这是一个使用 GROUP BY 和 ORDER BY 的 SQL 连接,它将生成 # 个订单的报告,但它不起作用

python - 在 Python 中存储集合数据的最佳方式是什么?

python - 检查数据帧值中有条件的第一次出现

python - 为什么这个简单的 Tkinter 教程脚本在 Raspberry Pi 上运行良好,但在 MacOS 上却不行?

python - Flask 是否已经清理了请求数据?

python - Django:如何在呈现 View 后更新模型?

php - SHA 函数问题