Oznámení
Omlouváme se, provoz fóra byl ukončen
DibiDatasource, chyba ve where?
Upozornění: Tohle vlákno je hodně staré.
před 8 lety
- jpos
- Člen | 2
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?
před 8 lety
- Milo
- Nette Core | 1119
V 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);
před 8 lety
- jpos
- Člen | 2
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!