tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Dibi 2.1.0 formáty polí a operátory

před 6 lety

holantomas
Backer | 56

Zdravím,
můžu se zeptat pro operátor %by, nedoplňuje „GROUP BY“ když se na nic jiného použít nedá? Přijde mi to trochu chaotické s dibi dělám poslední 3 měsíce a přijde mi divné, že jeden operátor jako %lmt nebo %ofs toto doplňují a %by ne, stejně jako LIKE. Místo jedné proměnné která se dosazuje za %~like~ nebo jiné varianty by mohlo být pole.

$arg = array("sloupec" => "hledaná hodnota");

$connection->query("[...] WHERE [foo] = 'bar' AND %~like~", $arg);
//Výsledek [...] WHERE `foo` = 'bar' AND [sloupec] LIKE %hledaná hodnota%;

Pokud jsem tuto funkčnost přehlédl, nebo to má dobrý důvod tak se omlouvám nejsem na úrovni kdy bych mohl říct, že DIBI nebo SQL umím i pozpátku(umím jen to co jsem do teď potřeboval).

před 6 lety

Milo
Nette Core | 1119

Modifikátory %lmt a %ofs jsou vyjímečné v tom, že vyjádření LIMIT a OFFSET se v různých datbázích liší. PostgreSQL a MySQL, vs. Oracle a MSSQL… Použitím těchto modifikátorů se „zaručí“ přenositelnost SQL dotazu, protože se doplní správné klauzule na správná místa v dotazu.

Oproti tomu %like a %by pouze formátují hodnotu. Třeba mě to takhle vyhovuje, protože nemusím přemýšlet, zda bude LIKE operátor doplněn anebo ne.

před 6 lety

holantomas
Backer | 56

Milo napsal(a):

Modifikátory %lmt a %ofs jsou vyjímečné v tom, že vyjádření LIMIT a OFFSET se v různých datbázích liší. PostgreSQL a MySQL, vs. Oracle a MSSQL… Použitím těchto modifikátorů se „zaručí“ přenositelnost SQL dotazu, protože se doplní správné klauzule na správná místa v dotazu.

Oproti tomu %like a %by pouze formátují hodnotu. Třeba mě to takhle vyhovuje, protože nemusím přemýšlet, zda bude LIKE operátor doplněn anebo ne.

Jistě jde celkem o blbost, ale také DIBI je tu hlavně o tom zjednodušit vývojáři práci, tak jsem si říkal, jaký je důvod proč toto neimplementovat. :)