Database Core – WHERE IN([]) se nyní nepřekládá jako WHERE IN(1=1)?

nettolog
Člen | 68
+
0
-

Ahoj. V dřívější verzi mi dotaz

$this->database->query("SELECT * FROM table WHERE id IN(?))", array());

v pořádku prošel a přeložil se jako

SELECT * FROM table WHERE id IN(1=1);

Teď už se takto nepřekládá a způsobuje to syntax error na straně mysql.

Je to v pořádku? Docela se mi líbilo, že si s prázdným polem Nette poradí. Jde o to, když dynamicky generuji pole požadovaných hodnot a v daném případě žádná požadovaná hodnota neexistuje.
Je nějaká možnost toto globálně napravit nebo budu muset projít kód a všude generovat tato pole s nějakou nesmyslnou hodnotou (třeba –1)?

Editoval nettolog (21. 4. 2020 22:31)

Kamil Valenta
Člen | 758
+
0
-

Já teda i v dřívějších verzích musel používat v poli nějakou „dummy“ položku [0], [-1] atp.

Takže mě naopak překvapuje, že to někomu generovalo 1=1 :)

nettolog
Člen | 68
+
0
-

Je fakt, že na některých místech to ze zvyku ošetřuju jak říkáš, ale teď jsem ještě pro jistotu zkusil takovou query spustit a v pohodě prošlo a přeložilo se na 1=1. Proto se tomu snažím trochu přijít na kloub. Týká se to verze 2.3.

Editoval nettolog (21. 4. 2020 22:33)