首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游标对象的MySQL-Python连接器属性错误

问游标对象的MySQL-Python连接器属性错误
EN

Stack Overflow用户
提问于 2018-09-19 15:57:51
回答 1查看 853关注 0票数 0

我正在为Flask中的一个项目使用mysql-connector-python包。我的代码如下所示:

代码语言:javascript
复制
@bp.route('/signup', methods=('POST',))
def signup():

    ...

    username = reqObj["username"]
    password = reqObj["password"]
    error = None

    db = get_db()
    cursor = db.cursor()
    query = ("SELECT * FROM userinfo " 
        "WHERE username=%s")

    existingUser = cursor.execute(query, (username,)).fetchone()

    if existingUser is not None:
        error = "Username already exists"

    if error is None:
        cursor.execute(
            'INSERT INTO userinfo (username, password) VALUES (%s, %s)',
            (username, generate_password_hash(password))
        )

        cursor.close()
        db.commit()

        res = {'actionSuccess': True}
        return jsonify(res)
    else:
        res = {'actionSuccess': False, 'error': error}
        return jsonify(res)

get_db()函数返回mysql.connector.connect()对象。但是,当我在服务器上运行它并对其进行测试时,我在Flask中得到一个错误消息:

代码语言:javascript
复制
...
existingUser = cursor.execute(query, (username,)).fetchone()
AttributeError: 'NoneType' object has no attribute 'fetchone'

代码语言:javascript
复制
...
File "e:\flasktest2\lib\site-packages\mysql\connector\connection.py", line 1128, in handle_unread_result
    raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found

这更令人困惑,因为它现在说有未读的结果,而不久前cursor.execute()还是一个NoneType。我不知道是什么导致了这个错误。然后,我尝试注释掉整个SELECT查询部分,并只是测试一下INSERT是否可以工作,果然确实可以。是什么导致了我的错误?

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 16:37:27

显然,使用mysql连接器,cursor.execute(...)无论执行语句的结果如何,都将返回None。但是,即使结果是空集,结果也将存储在游标对象本身中。在使用游标在新连接上执行新语句之前,还必须获取当前查询的所有结果。这意味着要做:

代码语言:javascript
复制
cursor.execute(...)
cursor.fetchone()

与此相对的是:

代码语言:javascript
复制
cursor.execute(...).fetchone()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52400913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档