Nejste přihlášen(a)
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
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.
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?