Я создаю приложение Python, которое взаимодействует с базой данных MySQL. После выполнения запроса SELECT * FROM privileges_groups
я сталкиваюсь с этой ошибкой:
mycursor.execute("SELECT * FROM privileges_groups")
File "/usr/local/lib/python3.6/dist-packages/mysql/connector/cursor.py", line 551, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/usr/local/lib/python3.6/dist-packages/mysql/connector/cursor.py", line 472, in _handle_result
raise errors.InterfaceError('Invalid result')
mysql.connector.errors.InterfaceError: Invalid result
Это происходит только при определенных конкретных обстоятельствах c, но я не могу сузить его до того, что непосредственно вызывает его. Другие запросы выполняются до этого, но они кажутся успешными.
Код, в котором это происходит:
def GetPrivileges():
"""Gets list of privileges."""
mycursor.execute("SELECT * FROM privileges_groups")
priv = mycursor.fetchall()
if len(priv) == 0:
return []
Privs = []
for x in priv:
Privs.append({
"Id" : x[0],
"Name" : x[1],
"Priv" : x[2],
"Colour" : x[3]
})
return Privs
Запросы выполнялись до него
def UserData(id):
"""Gets data for user. (specialised for user edit page)"""
Data = GetUser(id)
mycursor.execute("SELECT userpage_content, user_color, username_aka FROM users_stats WHERE id = %s LIMIT 1", (id,))# Req 1
Data1 = mycursor.fetchall()
if len(Data1) == 0:
return False
Data1 = Data1[0]
mycursor.execute("SELECT email, register_datetime, privileges, notes, donor_expire, silence_end, silence_reason FROM users WHERE id = %s LIMIT 1", (id,))
Data2 = mycursor.fetchall()[0]
#Fetches the IP
mycursor.execute("SELECT ip FROM ip_user WHERE userid = %s LIMIT 1", (id,))
try:
Ip = mycursor.fetchall()
if len(Ip) == 0:
Ip = "0.0.0.0"
else:
Ip = Ip[0][0]
except Exception:
Ip = "0.0.0.0"
#gets privilege name
mycursor.execute("SELECT name FROM privileges_groups WHERE privileges = %s LIMIT 1", (Data2[2],))
PrivData = mycursor.fetchall()
#rest of the code focuses on formatting the data from mysql