SQL dotaz WHERE IN proskenuje všechny tabulky a vrátí chybu, v phpmyadmin projde
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- nettolog
- Člen | 68
Dobrý večer, mám jednoduchý dotaz do DB:
$this->database->table('posts')
->where("nazev IN ($finalQuery)");
(nemůžu escapovat kvůli apostrofům a ani to není třeba, data jsou natažena interně z db)
kde $finalQuery = "'a','b','c','d','e'";
Chyba je: No reference found for $posts->a.
Tracy v rámci toho dotazu zobrazuje všemožné dotazy typu:
SHOW FULL TABLES
SHOW FULL COLUMNS FROM `table`
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 = 'table'
A to pro každou tabulku.
Nikdy jsem se s tím nesetkal a SQL dotaz v phpmyadmin projde v pořádku. Netušíte, kde by mohl být zakopaný pes?
Editoval nettolog (7. 6. 2015 0:15)
- nettolog
- Člen | 68
To je feature nette nebo by to prošlo i v čistém PDO? Nikdy jsem o téhle možnosti neslyšel, na fórech doporučují array převést na string oddělený čárkami a pak se jen dotazovat na WHERE IN (string).
Díky tedy, budu to muset vyzkoušet, je to pro mě opravdu novinka. :)
Editoval nettolog (8. 6. 2015 0:39)