PDOException no reference found při mazání záznamu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Darkry
Člen | 101
+
0
-

Zdravím,

v modelu si normálně vyberu jeden záznam, který potřebuji:

$row = $this->db->table("votes")->where(array("speculum_id" => $speculum_id, "users_id" => $user_id))->fetch();

A pak ho následně chci podmíněně smazat:

if($row != FALSE && $row->type == "down")
            $row->delete();

Což mi ovšem vyhazuje výjimku No reference found for $votes->.. Což moc nechápu proč, protože o žádné reference na další tabulky se tu nezajímám. Ještě pro jistotu přikládám schéma tabulky:

Sloupec	Typ	Komentář
id	int(11) Auto Increment
speculum_id	int(11)
users_id	int(11)
type	enum('up','down')

(users_id a speculum_id jsou odkazy na cizí tabulky, na tuhle tabulku se žádná jiná neváže)

Nevíte tedy, kde by mohla být chyba?

Díky za odpovědi!

hrach
Člen | 1838
+
0
-

jakou query to polozi? + pripadne duplni ten row a zkus tam najit ty data, ktery jsou v nem ulozeny, jestli je tam ten sloupec type.

Darkry
Člen | 101
+
0
-

Tak ten row jsem dumpoval dávno a ty data samozřejmě obsahuje (i type). A query to nejdřív položí tu na výběr (v tý proměnný row – to je úplně v pořádku) a potom to ještě stihne položit (asi při volání toho ->delete()) tohle:

SELECT CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL AND TABLE_NAME = 'votes'
hrach
Člen | 1838
+
0
-

Ted sem si vsiml nadpisu, coz je mozna zasadni inforamce. Tu chybu vyvolava az to mazani? To totiz v postu napsany nemas ;)

Darkry
Člen | 101
+
0
-

Tak to se omlouvám :). Ano, chybu vyvolává právě to mazání.

Darkry
Člen | 101
+
0
-

OMG…stačilo smažit cache… :)

hrach
Člen | 1838
+
0
-

To je zajimave… ty si menil nejak strukturu tabulky? Celkem by me zajimalo, co v te cachi predtim mohlo byt…

Darkry
Člen | 101
+
0
-

Na jistotu ti to už neřeknu, ale mám dojem, že strukturu jsem neměnil. Pokud by se mi to někdy stalo znova tak ti klidně ty cache pošlu :)

Kenn
Člen | 110
+
0
-

Taky se mi objevila stejná chyba. Tabulku jsem nijak neměnil a z ničeho nic mi na serveru nešlo přidávání záznamů do databáze. Pomohlo až promazání cache na potřetí. Bug?

jtousek
Člen | 951
+
0
-

Vypadá to na bug cache. Jakou verzi Nette používáš? Pokud se chyba objeví znovu, můžeš někam upnout tu problematickou cache?