我目前正在学习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
请告诉我是否应该提供更多部分代码。
原因可能是您没有正确处理参数。这应该看起来像:
#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")