tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

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

detectTypes a setType s DibiFluent query

před 9 lety

ezimir
Člen | 21

Ahoj.

Viac sa mi ľúbi „DibiFluent syntax“ než prísať celú query sám, avšak narazil som na jednu drobnosť, ktorú som vyriešil nasledovne:

Z tohoto (dibi/libs/DibiFluent.php):

<?php
    public function fetch()
    {
        if ($this->command === 'SELECT') {
            return $this->connection->query($this->_export(NULL, array('%lmt', 1)))->fetch();
        } else {
            return $this->connection->query($this->_export())->fetch();
        }
    }
?>

Som si spravil takéto:

<?php
    public function fetch()
    {
        if ($this->command === 'SELECT') {
            $res = $this->connection->query($this->_export(NULL, array('%lmt', 1)));
            $res->detectTypes();
            return $res->fetch();
        } else {
            return $this->connection->query($this->_export())->fetch();
        }
    }
?>
  1. Dá sa to riešiť aj inak? (detectTypes/setType pre DigiFluent)
  2. Sú nejaké query, ktoré sa s detectTypes-om nemajú radi? (detectTypes nebol v DigiFluent z nejakého podobného dôvodu?)
  3. Prečo nie je detectTypes východzie nastavenie pre všetky result-y?

Vďaka,
Martin

<?php
    /**#@+
     * dibi version
     */
    const VERSION = '1.3-dev';
    const REVISION = '9059292 released on 2010-09-28';
    /**#@-*/
?>

před 9 lety

westrem
Člen | 398
  1. vsak detectTypes sa nastavuje v config.ini, vid API .. tomu potom podliehaju vsetky result sety, a kedze DibiFluent je len obalka nad connection query, tak to bude fungovat aj tam a nemusis nic prepisovat.
  2. ako to myslis? DibiFluent je cisto na data retrieval, takze tam nema byt prilis co bijuce sa .. ale mozno join-y tomu mozu robit problemy, nemam odskusane
  3. a preco by malo byt? Stoji to nejaku reziu naviac (vyuziva sa reflexia na DB) a nie vzdy potrebujes dostavat z DB uz aj spravne converted hodnoty.

před 9 lety

ezimir
Člen | 21

westrem napsal(a):

1. vsak detectTypes sa nastavuje v config.ini, vid API .. tomu potom podliehaju vsetky result sety, a kedze DibiFluent je len obalka nad connection query, tak to bude fungovat aj tam a nemusis nic prepisovat.

Tak to som netušil, paráda !!!

2. ako to myslis? DibiFluent je cisto na data retrieval, takze tam nema byt prilis co bijuce sa .. ale mozno join-y tomu mozu robit problemy, nemam odskusane

Hmm, ok… ja len pre istotu, kedže som modifikoval niečo, čo ani zďaľeka nemám preštudované…

3. a preco by malo byt? Stoji to nejaku reziu naviac (vyuziva sa reflexia na DB) a nie vzdy potrebujes dostavat z DB uz aj spravne converted hodnoty.

Hmm, nie vždy, hmmmm… To mi nesedí, ale máš samozrejme pravdu.

Vďaka westrem.