Výběř řádku dle primárního klíče
- Mysteria
- Člen | 797
Zdravím, v podstatě se mi nabízí 3 možnosti, jak toho dosáhnout:
$this->database->table('user')->get($id); // Generuje vždy SELECT *
$this->database->table('user')->wherePrimary($id)->fetch(); // Generuje vždy SELECT *
$this->database->table('user')->where('id', $id)->fetch(); // Generuje SELECT jenom potřebné sloupce
Z toho mě vychází, že první dva se hodí, když potebuju všechny sloupce a ten třetí, když vím, že nebudu potřebovat všechny? Myslím si to tak správně? Nebo jak poznat, co kde použít?
Díky.
- Tomáš Kolinger
- Člen | 136
Je to IMHO jen alternativní zápis. Sloupce se vybírají podle toho, jaké používáš… To se následně uloží do keše a následně se místo * volaj už konkrétní sloupce.
Takže si používej zápis, jaký se ti líbí. Já osobně používám všude ->where, protože je to univerzální a lehce to přepíšeš na jiný (ne-primarní) sloupec.
Editoval Tomáš Kolinger (22. 2. 2014 18:54)
- Mysteria
- Člen | 797
@Tomáš Kolinger: No právě že ne, ty první dva způsoby mě vždy generují SELECT * i při několikanásobném refreshy. Proto se na to ptám, rád bych používal ten první, ale jsem kvůli tomu „nucen“ používat ten třetí.
EDIT: Aha, problém byl jinde, všechny 3 způsoby generují SELECT potřebné sloupce, z nějakého důvodu mi to na hostingu vybíralo u prvních dvou způsobů pořád všechny sloupce, po smazání cache to funguje pro všechny tři způsoby stejně.
Editoval Mysteria (22. 2. 2014 19:16)
- David Matějka
- Moderator | 6445
ted jsem to zkousel a i pri get() se mi pouzije cache. jakou verzi nette
pouzivas? prijde mi divny, ze by to vzdy davalo *
, jelikoz interne
wherePrimary vola where…