Oznámení
Jaký bude vývoj modifikátorů %sql a %SQL?
před 8 lety
- Milo
- Nette Core | 1119
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
před 8 lety
- David Grudl
- Nette Core | 6806
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.
před 8 lety
- Milo
- Nette Core | 1119
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?