Fatal Error: Wrong parameters for Exception([string $exception … při chybném SQL (Dibi)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mr.mac
Člen | 87
+
0
-

V Nette 2.0 mi při nesprávně vygenerovaném SQL příkazu se objevuje v laděnce chyba (zvýrazněný řádek 43):

Fatal Error

Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]]) search►

Source file ▼

File: C:\xamlite\htdocs\_Libs\Dibi\libs\DibiException.php   Line: 43

36:         * Construct a dibi exception.
37:         * @param  string  Message describing the exception
38:         * @param  int     Some code
39:         * @param  string SQL command
40:         */
41:        public function __construct($message = NULL, $code = 0, $sql = NULL)
42:        {
43:            parent::__construct($message, (int) $code);
44:            $this->sql = $sql;
45:            // TODO: add $profiler->exception($this);
46:        }
47:
48:
49:
50:

Myslím si, že to je nedostatečně ošetřená výjímka při nesprávném SQL (obvykle Update, Insert se špatnými parametry). Objevuje se to prakticky vždy. Používám Dibi 1.5rc.
Bohužel v laděnce nejsem schopen zjistit jaká chyba SQL to je (nevidím dotaz), dokonce to ani není vidět při použití fireBug profileru. Existuje nějaké řešení jak mít možnost chybu identifikovat?

Editoval mr.mac (15. 10. 2011 13:17)

Ot@s
Backer | 476
+
0
-

SQL dotaz (nebo jeho parametry) nalezneš v předchozích chybových řádcích. Rozklikej si jejich argumenty a snad uvidíš víc. Taky můžeš dumpovat v kódu dibi (Nette), tj. mezi řádky 42/43 dáš třeba print_r($sql);. Až Ti vyskočí laděnka, stiskni ESC a poslední SQL dotaz ve výstupu je to co hledáš.

Aurielle
Člen | 1281
+
0
-

Tohle by mělo být v Hlášení chyb (a asi na dibi fóru)…

mr.mac
Člen | 87
+
0
-

Ot@s napsal(a):

Díky moc – omlouvám se, že jsem to nenapsal na DibiFórum. Jsem v Nette nováček (viz mnohé stupidní dotazy) a navíc jsem musel použít vlastní driver v Dibi (používám MS SQL 2008 R2), takže jsem měl obavy, že nechodí moc dobře.
To s tím Escapem po laděnce jsem fakt nevěděl – ušetří mi to hrozně moc času.