Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před rokem

jpos
Nový člen
Registrovaný: 23. 5. 2011
Příspěvky: 2

DibiDatasource, chyba ve where?

Ahoj,
mám podezření, že se v DibiDatasource (ds) divně chová where(array(‚sloupec‘=>$hodnota)). Uvedu příklad:

<?php

$prdId = 13;

// FUNGUJE JAK MA
dibi::select('*')->from('PRODUCT')->where(array('PRD_ID' => $prdId))->fetch();

// NEFUNGUJE - viz dotaz který to generuje do proměnné $sql
$ds = dibi::dataSource('SELECT * FROM PRODUCT');
$de->where(array('PRD_ID'=>$prdId));
$sql = $ds->__toString(); // SELECT * FROM (SELECT * FROM PRODUCT) t WHERE (13)

?>

Je to chyba nebo vlastnost?

 

#2 před rokem

Milo
dibi guru
Registrovaný: 4. 5. 2010
Příspěvky: 298

Re: DibiDatasource, chyba ve where?

API se můžeš dočíst o TODO. Tohle chování lze obejít:

$conditions = array(
        'PRD_ID' => $prdId,
        'col_2'  => '.....',
);

$ds = dibi::dataSource('SELECT * FROM product');
$ds->where('%and', $conditions);

 

#3 před rokem

jpos
Nový člen
Registrovaný: 23. 5. 2011
Příspěvky: 2

Re: DibiDatasource, chyba ve where?

Aha, takže je to vlastnost :-) Podle TODO jsem pochopil, že je v plánu to sjednotit… Ale stejně by bylo hezké, kdyby o tom že to v tuto chvíli není sjednocené informoval i phpDoc komentář a nemusel jsem tuhle informaci lovit ze zdrojáků… (ale zaplať Pánbůh, že je alespoň tam :-) )

Každopadně děkuji mnohokrát za vysvětlení a workaround!

 

Zápatí