mysql.connector.errors.InternalError:使用“DELETE”时发现未读结果错误

问题描述 投票:0回答:1

我目前正在学习Python与

MySQL
的连接,这些是制作表格的行

    import mysql.connector
    mydb=mysql.connector.connect(host="localhost",user="root",password="root")
    #CREATING DATABASE AND TABLE
    mycursor=mydb.cursor()
    mycursor.execute("create database if not exists store")
    mycursor.execute("use store")
    mycursor.execute("create table if not exists signup(username varchar(20),password varchar(20))")
    mycursor.execute("create table if not exists buynewbooks(nameofbook varchar(30))")
    mycursor.execute("create table if not exists feedback(rating varchar(11))")

这是我收到错误的代码块:

    #delete acc 
        elif  ch==3:
                mycursor.execute("select username from signup")
                u=str(input("enter your registerd USERNAME"))   
                p=str(input("enter your account password"))
                sql = "DELETE FROM signup WHERE username = u AND password = p" 
                mycursor.execute(sql)
                mydb.commit
                print("your account has been removed")

这是我收到的错误:

Traceback (most recent call last):
File "C:/Users/win10/.spyder-py3/kj7.py", line 34, in <module>
mycursor.execute(sql)
File "C:\Users\win10\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\cursor.py", line 547, in execute
self._connection.handle_unread_result()
File "C:\Users\win10\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 1286, in handle_unread_result
raise errors.InternalError("Unread result found")
mysql.connector.errors.InternalError: Unread result found

请告诉我是否应该提供更多部分代码。

python mysql mysql-python mysql-connector mysql-connector-python
1个回答
1
投票

原因可能是您没有正确处理参数。这应该看起来像:

#delete acc 
elif ch==3:
    mycursor.execute("select username from signup")
    u=str(input("enter your registerd USERNAME"))   
    p=str(input("enter your account password"))
    sql = f"DELETE FROM signup WHERE username = {u} AND password = {p}" 
    mycursor.execute(sql)
    mydb.commit()
    print("your account has been removed")

您也可以这样传递:

#delete acc 
elif ch==3:
    mycursor.execute("select username from signup")
    u=str(input("enter your registerd USERNAME"))   
    p=str(input("enter your account password"))
    sql = "DELETE FROM signup WHERE username = %s AND password = %s" 
    mycursor.execute(sql, (u, p))
    mydb.commit()
    print("your account has been removed")
© www.soinside.com 2019 - 2024. All rights reserved.