Oznámení
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] ...');