Hmmm... Błąd jest raczej na poziomie podstaw programowania w pythonie którego nie możemy dojrzeć. Pakietu nie mam zainstalowanego na tymczasowym sprzęcie więc niestety nie jestem ci w stanie podać prawidłowego rozwiązania. Ale spróbuję ci pomóc go rozwiązać. Tak więc pobawimy się w lekcje testowania. Napisz mi co wyrzucą printy.
Na razie porzućmy pętle, wrzuć rekord pomiędzy jednym, drugim a trzecim sprawdzeniem, sleep da ci 10 sekund czasu, jakbyś potrzebował więcej/mniej to sobie zmień :).
Na dwójce nieoperowałem więc niestety musisz sobie dostosować jeśli coś ujmę w sposób który wywoła SyntaxError:
import MySQLdb
from time import sleep as slp
db = MySQLdb.connect(user='cpp', passwd='cpp', db='cpp',
host='127.0.0.1', port=3306)
cur = db.cursor()
cura = db.cursor()
cur.execute("SELECT * FROM kolejka")
#Sprawdzamy po pierwszym zczytaniu
print(cur, cura)
type(cur, cura)
for row in cur.fetchall():
a = row[0]
cura.execute("DELETE FROM kolejka WHERE id=%s", (a,))
db.commit()
print(cur, cura)
type(cur, cura)
#Tu sprawdzamy po usunieciu
cur = db.cursor()
cura = db.cursor()
#Próbujemy zczytac po próbie kolejnego odczytu czy cos sie zmienilo od usuniecia
print(cur, cura)
type(cur, cura)
#Zerknijmy jeszcze co się stało ze zmienną cur po funkcji execute.
cur.execute("SELECT * FROM kolejka")
print(cur, cura)
type(cur, cura)
slp(10)
#A w tych 10 sekundach sprobuj dograc jakis rekord :).
cur = db.cursor()
cura = db.cursor()
#A teraz przetestujemy po zczytaniu co nam wypluje.
print(cur, cura)
type(cur, cura)
Typ nie bez powodu, bo wywołanie funkcji może zwrócić None, print nie wiem czy nie wyrzuci nam że jest to obiekt klasy, ale może się uda ;p