tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

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

Změna syntaxe fetchAssoc()

před 9 lety

Petr Daňa
Člen | 106

Tak jsem náhodou zjistil, že se zcela zásadně změnila syntaxe pro fetchAssoc, a to už 6.10.2009 (proč tato důležitá změna nebyla zmíněna zde na fóru?).

A proč to bylo změněno? Co jsem tak koukal do zdrojáku, tak teď už nefunguje ‚customer_id,=,order_id‘ (viz. „dokumentace“ https://phpfashion.com/…li-dibi-0-9b ). Lze to nějak udělat (já na to nepřišel) nebo to už skutečně nejde a musím to udělat sám?

před 9 lety

phx
Člen | 652

Koukam do zdrojaku a melo by jit oboje:

final public function fetchAssoc($assoc)
{
    if (strpos($assoc, ',') !== FALSE) {
        return $this->oldFetchAssoc($assoc);
    }
//...

před 9 lety

Petr Daňa
Člen | 106

No to sice ano, ale ta metoda oldFetchAssoc je označena jako deprecated, takže to beru už jakoby to nefungovalo.

před 9 lety

David Grudl
Nette Core | 6806

Syntaxe se nezměnila a stále funguje. Zároveň s ní testuju novou syntaxi, se kterou ale nejsem spokojen a proto jsem o ní zatím nic nepsal.

před 9 lety

phx
Člen | 652

Me se libi a prijde mi vic intuitivnejsi.

před 9 lety

Petr Daňa
Člen | 106

David Grudl napsal(a):

Syntaxe se nezměnila a stále funguje. Zároveň s ní testuju novou syntaxi, se kterou ale nejsem spokojen a proto jsem o ní zatím nic nepsal.

OK, beru, že je to vývojová verze, ovšem pokud najednou vidím ve zdrojáku, že předchozí implementace je přejmenována s prefixem old, která je volána z původní, a navíc je tato old metoda označena jako deprecated, tak logicky předpokládám, že se zahazuje.

Bylo by teda asi vhodnější dát do komentáře metody něco jako experimental a u té old nepsat deprecated, ale taky experimental nebo tak něco.

před 9 lety

zbytovsky
Člen | 18

Tu syntax jsem sice chvíli zkoumal, ale když jsem to napsal a zkusil, tak jsem užasl, že to vypadá stejně jako můj „vlastní“ zápis. Fakt moc dobré!

$res = dibi::query('SELECT id_photo,tag FROM [:p:gallery_tags]');

$tags = array();
foreach($res as $r)
    $tags[$r['id_photo']][] = $r['tag'];


$tags = $res->fetchAssoc('id_photo[]=tag');