Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před rokem

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

Jaký bude vývoj modifikátorů %sql a %SQL?

Ahoj,
jakým směrem se budou vyvýjet modifikátory %sql a %SQL? Ve zdrojácích to je sice uvedeno celkem jasně, ale to přináší BC break, tak jestli s tím do budoucna počítat.

A ještě otázka k modifikátoru %sql. U Postgresu „předělává“ uvozovky na apostrofy. Fičura, nebo bug?

$sql = '"col1" = "col2"';
dibi::test( 'SELECT * FROM [table] WHERE %sql', $sql );
//           SELECT * FROM "table" WHERE '$col1' = '$col2'

Díky

 

#2 před rokem

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5833

Re: Jaký bude vývoj modifikátorů %sql a %SQL?

Rozdíl je právě v té interpretaci např. řetězců. Takže %sql předělává uvozovky apod, %SQL nepředělává nic. Zdá se mi, že to není moc intuitivní, takže bych chování asi změnil tak, že ani %sql nebude nic předělávat.

 

#3 před rokem

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

Re: Jaký bude vývoj modifikátorů %sql a %SQL?

Také mi to přijde neintuitivní. Escapování názvů uzavřených v [ ] ještě celkem ano, ale záměna uvozovek už ne. Zaskočilo mě to při psaní jedné komponenty využívající dibi. Na MySQL fungovala, na PostreSQL už ne.

$where = $db->translate('%n = %s', $sloupec, $hodnota );
...
dibi::query('SELECT * FROM [tabulka] WHERE %sql', $where);
// Na MySQL OK na PostgreSQL ne

Po předělání na %SQL zase někde nefungovalo escapování názvů. Jestli nemá změna přijít brzo, nebylo by dobré dát to do Quick startu?

 

Zápatí