簡體   English   中英

IndexError:元組索引超出范圍 Mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM