Nejste přihlášen(a)
Zdravím, mám problém s dotazy na databázi driverem oracle.
Posílám úplně jednoduchý dotaz:
->query('SELECT [id_uzivatele], [email], [heslo], [nazev_role]
FROM [www_uzivatele]
JOIN [www_role] using([id_role])
WHERE [email] = %s', $email)->fetch();
Problém je ten že výsledkem je exception:
oci_execute(): ORA-00905: missing keyword
na řádku 108, query($sql) metody oracle driveru
oci_execute($res, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT);
V profileru je dotaz jako
SELECT "id_uzivatele", "email", "heslo", "nazev_role"
FROM "www_uzivatele"
JOIN "www_role" using("id_role")
WHERE "email" = 'uuu'
Myslím že problém je v tom, že se řetězec zpracovává jako string taky ve dvojitých uvozovkách a to s těmi co už uzavírají sloupce a tabulky nejde dohromady.
Takže změna, chyba odhalena.
Nastává při volání explainu.
DibiProfiler před dotaz pouze přidává EXPLAIN, což je ale v Oracle
špatně, tam je EXPLAIN PLAN.