Found duplicate columns in database result set – proč?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- n.u.r.v.
- Člen | 485
Ahoj, nevíte proč mi nette u následujícího DB dotazu hází User Notice – Found duplicate columns in database result set? Nevím, asi už na to dnes čumím moc dlouho…
$query = 'SELECT f.ID AS FIRM_ID, f.TITLE AS FIRM_TITLE, f.ADDRESS AS FIRM_ADDRESS, f.CITY AS FIRM_CITY, f.ZIP
AS FIRM_ZIP,
f.DATE_PAID_TO AS FIRM_ACCES_TO, f.ACTIVE AS FIRM_ACTIVE,
fd.SCHOOL_TYPE, fd.YEARCLASS_MAX, fd.LANG_CODE, fd.ADMIN_NAME, fd.ADMIN_SURNAME, fd.ADMIN_EMAIL,
fd.HEADMASTER, fd.ADVISOR, fd.LANG_CODE,
u.ID AS USER_ID, u.CLASSROOM_ID, u.USER_TYPE, u.USERNAME, u.PASSWORD, u.PASSWORD_PARENTS,
u.PASSWORD_FRIENDS,
u.NAME, u.SURNAME, u.EMAIL, u.ACTIVE AS USER_ACTIVE,u.SEX
FROM firms AS f
JOIN firms_data AS fd ON (fd.FIRM_ID = f.ID)
LEFT JOIN users AS u ON (u.FIRM_ID = f.ID)
WHERE f.ID = "987654"
AND u.USERNAME = "username"
AND (u.PASSWORD = "1234" OR u.PASSWORD_PARENTS = "5678" OR u.PASSWORD_FRIENDS =
"9101112")
LIMIT 1';
$row = $this->database->query($query)->fetch();
Pozn. $this->database je Nette\Database\Context.
Když DB dotaz vykonám např. v phpmyadmin, tak v funguje. Dokonce i v nette BARu mi to ukazuje dotaz a výsledek 1 řádek (což je ok)…
Díky
- Caine
- Člen | 216
To znamena, ze dva a vice sloupcu se jmenujou stejne a dochazi u nich k prepisovani hodnot. Po SQL strance to spatne neni, ale v PHP* uz jo..
Z napr SELECT t1.id, t1.name, t2.id FROM ...
ti vznikne
['id' => 123, 'name' => 'blabla']
– treti sloupec chybi,
protoze vlastne prepsal prvni..
* – PDO + fetch assoc