[英]IndexError: tuple index out of range Mysql
大家好,我正在嘗試編寫一個可以從 Mysql 數據庫中刪除代碼的電報機器人。 我仍然無法解決我遇到的問題。 我需要檢查的代碼存儲在“item”變量中,但是當我進行檢查時,它會寫信給我: if check_code[0][0] == item: IndexError: tuple index out of range。 請幫忙解決這個問題! 我剛開始用這種很酷的語言編程!
@dp.message_handler(state=dataBase.user1)
async def user_code(message: types.Message, state: FSMContext):
item = message.text
await state.update_data(
{
'item': item
}
)
data = await state.get_data()
item = data.get('item')
if len(item) == 0:
return
cursor.execute(f'DELETE FROM users WHERE code="{item}"')
check_code = cursor.fetchall()
if check_code[0][0] == item:
await bot.send_message(message.from_user.id,"The user has been successfully deleted!")
else:
await bot.send_message(message.from_user.id, "There is no such user!")
await state.finish()
.fetchall()
方法將返回您正在查詢的表的元組列表。 在這種情況下,您的查詢會刪除記錄,因此它可能會返回一個空元組。 您需要對fetchall()
進行SELECT
查詢才能返回任何結果。 如果要查看記錄是否刪除成功,可以在刪除查詢后運行以下命令:
cursor.execute(f'SELECT * FROM users WHERE code="{item}"')
check_code = cursor.fetchall()
如果這沒有返回任何內容,那么您就知道該記錄已被刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.