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
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!
- Darkry
- Člen | 101
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'