tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

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

Vrátenie výsledného SQL bez vykonania query

před 9 lety

slapo
Člen | 23

Zdravím,

je možné nejako z dibi získať SQL tak, ako by ho zložila bez toho, aby sa SQL vykonalo?
Hľadal som na fórach aj v dokumentácii, ale buď som to prehliadol, alebo taká metóda neexistuje.

Príklad na vymyslenej funkcii getSql:

$sql = "SELECT col1, col2 FROM %n WHERE price BETWEEN %f AND %f";
$sql_full = dibi::getSql($sql, self::TABLE_PRODUCT, $lower_price_limit, $upper_price_limit);

a obsah $sql_full by potom bol bez ukončovacej bodkočiarky napr.

SELECT col1, col2 FROM product WHERE price BETWEEN 0.00 AND 100.00

Existuje v dibi nejaký ekvivalent getSql?
Ak nie, šlo by to pridať do najbližšej stabilnej verzie?

Použitie by bolo najmä v opakovaných subqueries. Zlepšilo by to opakovanú použiteľnosť kódu v zmysle DRY.

Ďakujem.

Editoval slapo (28. 5. 2010 10:02)

před 9 lety

phx
Člen | 652

Z DibiFluent to jde pres __toString() nebo neco takoveho.

před 9 lety

Ondřej Mirtes
Člen | 1539

V normálním dibi napiš místo dibi::query dibi::test.

před 9 lety

slapo
Člen | 23

Ondřej Mirtes napsal(a):

V normálním dibi napiš místo dibi::query dibi::test.

Ďakujem obom.

dibi::test() je skoro ono, len som to musel skĺbiť s funkciami pre prácu s bufferom, keďže sa zdá, že test() to rovno vypíše.

před 9 lety

phx
Člen | 652

Projdi si obsah metody dibi::test() treba tam vykoukas jak to ziskat primo. (najdes nejakou jinou public metodu)

před 9 lety

PetrP
Člen | 587

To co hledáš je:

dibi::getConnection()->translate('SELECT * FROM [blabla] ...');