Fatal Error: Wrong parameters for Exception([string $exception … při chybném SQL (Dibi)
- mr.mac
- Člen | 87
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
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áš.
- mr.mac
- Člen | 87
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.