tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Typ proměnných po SELECT

před 9 lety

22
Člen | 1484

zdravím, mám dotaz jak dibi pracuje s typem proměnných?
Mám například:

$data = dibi::query('SELECT * FROM [table]')

kde jsou sloupce id,nazev,cena
ale:

Debug::dump($data)

mi vypíše všechno jako typ string. Dělám něco blbě?

před 9 lety

David Grudl
Nette Core | 6806

Tuším pomůže $data->detectTypes()

před 9 lety

22
Člen | 1484
$data = dibi::query('SELECT * FROM [products]')->fetchPairs();
$data->detectTypes();
Debug::dump($data);

Způsobí chybu: Call to a member function detectTypes() on a non-object

$data = dibi::query('SELECT * FROM [products]');
$data->detectTypes();
$data->fetchPairs();
Debug::dump($data);

Proběhne sice bez chyby, ale Debug::dump($data) vypisuje celý objekt. Typy proměnných nejsou detekovány podle mě. Přitom, pokud si vytvořím pole:

$data = array('první',2,'třetí');
Debug::dump($data);

..Debug vypíše správné typy.

Editoval 22 (23. 2. 2010 10:21)

před 9 lety

David Grudl
Nette Core | 6806

Musíš dumpovat nikoliv objekt $data, ale to, co ti metoda fetchPairs() vrátí.

před 9 lety

22
Člen | 1484

Fajn, tak už jsem to přivedl k životu:

$res = dibi::query('SELECT [schvaleno] FROM [user] WHERE [id]=%i',$id);
$res->detectTypes();
$res = $res->fetchPairs();
Debug::dump($res);

edit: Jen by mě zajímalo, proč se to nenatypuje automaticky už v objektu po dibi::query?

Editoval 22 (23. 2. 2010 22:50)