spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

František Čaník 21.4.2011, článok je súčasťou seriálu Nette PHP framework
Hodnoť článok:
0 0

Nette PHP Framework (4): Spoznajte sestru Nette – DiBi

Pri spájaní našej aplikácie s databázou sme si predstavili v skratke databázovú vrstvu s príznačným (no pre mňa nepochopeným) názvom – DiBi. Dnes si pozrieme najdôležitejšie príkazy, ktoré budete využívať pri komunikácii s databázou.

Volanie Query, získavanie výsledkov a počty riadkov...

V bežnom mysql by sme napísali mysql_query… dnes, keď sme si už inicializovali databázovú vrstvu dibi, môžeme zavolať query nasledovne:

$news = dibi::query(“SELECT NewsTitle, NewsPerex FROM t_news WHERE Status  = ‘published’ ORDER BY Date DESC”);

Do premennej $news sa nám uložili údaje menom DibiObject. Ako sme sa už naučili, k objektom sa pristupuje svojsky a samostatne a preto ak chceme získať údaje priamo z daného objektu, zavoláme niektorý z nasledovných kódov:
Ak vieme, že výsledkom je jediný riadok, zavoláme si dáta cez:

$single = $news->fetchSingle();

Ak máme viacero výsledkov, zavoláme si dáta pomocou:

$all = $news->fetchAll();

V predošlých častiach sme písali, že Nette sa stará hlavne o ochranu Vašich údajov a odbúrava všetky cross-site scripting útoky a rovnako tak funguje aj samotný DIBI layer. V rámci ochrany sa prenášajú údaje pomocou modifikátorov. Modifikátori sa starajú o to, aby sa do Vášho SQL kódu dostala vždy správna hodnota bez toho, aby ste ju vy museli overovať na správnosť.

%s string
%sN String, pričom prázdna hodnota sa preloží na NULL
%bin Binárne dáta
%b boolean
%i %u integer
%iN Integer, nula sa prevedie na hodnotu NULL
%f float
%d datum (očakáva sa string, alebo číslo)
%t datum & čas (tiež string alebo číslo)
%n identifikátor (názov tabuľky alebo stĺpca)
%sql SQL – reťazec sa nechá bez zmien
%lmt Špeciálna hodnota – určuje limit
%ofs Špeciálna hodnota – určuje ofset
%ex Špeciálna hodnota – expanduje pole

Vždy je potrebné používať minimálne modifikátor %s (string). Dibi tak bude vedieť, ako oddeliť časť kódu a bude ho vedieť správne preložiť v rámci práce medzi databázovými platformami (napr. rozlíšiť sql pre mysql a pre ODBC).

dibi::query('UPDATE `table` SET `text`=%s', $text);
// MySQL: UPDATE `table` SET `text`='I\'m fine'

// ODBC:  UPDATE [table] SET [text]='I''m fine'

Určite však niekedy budete potrebovať vyhľadávať aj prostredníctom modifikátoru LIKE. Aj tu má dibi svoje vlastné riešenie, ktoré je nasledovné:

%like~ výraz začína reťazcom
%~like výraz končí reťazcom
%~like~ výraz obsahuje reťazec

Rozpisovať sa však o všetkých výhodách a funkciách, ktoré dibi ponúka, by nebolo asi moc správne, pretože toto je seriál o Nette. Ak Vás však dibi zaujala, určite si pozrite oficiálne stránky na adrese: dibiphp.com/cs/quick-start.

Páči sa ti Nette? A chceš sledovať články o Nette frameworku?

Ďalšie časti seriálu Nette PHP Framework nájdeš tu:
dev > Nette

František Čaník František Čaník

Programátor, webdesigner a webdeveloper niekoľkých webových projektov. Má za sebou prácu v reklamnej agentúre, médiách a na rôznych pozíciách v oblasti IT.


Hodnoť článok:
0 0

3 komentáre k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

0 0 František Čaník 26.11.2015 13:27:00
@Bunak osobne by som to videl na zaneprazdnenost, nestalost komunity a hlavne ... upadok citatelov
0 0 Bunak 14.11.2015 16:28:50
Dobrý den, chtěl bych se zeptat proč skončil seriál? Osobně bych to typoval o nezájem o Nette :-)
0 0 Tomáš Nikl 11.8.2011 13:28:11
Muzu ocekavat dalsi clanky na toto tema? Diky za info
Zajtra.sk > Programovanie > PHP > Nette PHP Framework (4): Spoznajte sestru Nette – DiBi


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama