Closed jkufner closed 12 years ago
To by dibi muselo parsovat celý SQL dotaz, což nedělá. Komentář lze vložit přes %SQL modifikátor a bude to bez problému. <?php $comment = '-- ' . FILE . ':' . LINE . ': Hello world'; dibi::query("%SQL\nSELECT 'hello_world'", $comment); ?> Detekce SELECTu a explain by byla fajn.
Díky, tohle funguje tak jak má.
Jen pozor na to, aby v komentu nebyl nový řádek. Pak je chyba na světě.
Tak to jasně :)
Spíš uvažuju, jak moc by bylo těžké zařídit, aby takový řádek přidávalo dibi samo a nemusel jsem ho tam pořád dávat ručně.
Pokud vím, tak to profiler do svého logu přidává. https://github.com/dg/dibi/commit/8a899c7ddb7b5e661c93f6eea1b9b3bc5b30aff7
Můžem to probrat na http://forum.dibiphp.com/ ať to tu nezasviňujem.
Výsledný SQL dotaz:
Ve výsledku jsou navíc apostrofy u dvojteček.
Přidáme-li otazník:
Výsledek: SQL translate error
Trošku větší SQL dotazy pak dokážou generovat i chyby jako "DateTime::__construct(): Failed to parse time string (AND start_time <= %d) at position 0 (A): The timezone could not be found in the database". Samozřejmě, SQL dotaz je zcela správně a po odstranění komentáře na prvním řádku funguje.
Ten komentář na začátku měl sloužit k identifikaci dotazu v logu a chybových hlášeních.
Navíc v tom ladicím toolbaru od Nette chybí "explain" u takto okomentovaného dotazu a komentáře nejsou správně zvýrazněny.