Introducere

Nette ofera un strat puternic pentru accesarea cu usurinta a bazei de date.

  • compune interogari SQL cu usurinta
  • preia cu usurinta date
  • foloseste interogari eficiente si nu transmite date inutile

Nette Database Core este un pachet in jurul PDO si ofera functionalitati de baza.

Stratul Nette Database Explorer va ajuta sa preluati datele bazei de date mai usor si intr-un mod mai optimizat.

Sustine-ma

Iti place Nette Database? Astepti cu nerabdare noile functii?

Multumesc!

Instalare

Modul recomandat de instalare este prin Composer:

compozitor necesita nette / baza de date

Necesita versiunea PHP 8.0.

Utilizare

Aceasta este doar o documentatie. Va rugam sa consultati site-ul nostru.

Nucleul bazei de date

Pentru a crea o noua conexiune la baza de date, creati doar o noua instanta a clasei Nette \ Database \ Connection:

$ baza de date = new Nette \ Database \ Connection ($ dsn, $ utilizator, $ parola); // aceleasi argumente ca si utilizarea DOP

Conexiunea va permite sa interogati cu usurinta baza de date apeland metoda de interogare:

$ baza de date-> interogare (‘INSERT INTO users’, [// o matrice poate fi un parametru ‘name’ => ‘Jim’, ‘created’ => new DateTime, // sau un obiect DateTime ‘avatar’ => fopen (‘image.gif’, ‘r’), // sau un fisier], …); // este chiar posibil sa folositi mai multe insertii $ baza de date-> interogare („ACTUALIZATI SETAREA utilizatorilor? WHERE id =?”, $ data, $ id); $ baza de date-> interogare (‘SELECT * FROM categories WHERE id =?’, 123) -> dump ();

Explorator baze de date

Stratul Nette Database Explorer va ajuta sa obtineti datele bazei de date mai usor si intr-un mod mai optimizat. Atitudinea principala este de a prelua date dintr-un singur tabel si de a le prelua simultan. Datele sunt preluate in instantele ActiveRow. Datele din alte tabele conectate prin relatii sunt livrate de alte interogari – acestea sunt intretinute chiar de stratul Database Explorer.

Sa aruncam o privire asupra cazului de utilizare obisnuit.

sexo romantico incestos lesbicos
viejas zoofilia travestis españolas
follar abuelas maduras a cuatro patas
pornografia gratis sexso
familia española follando se la chupa mientras duerme
madres incestuosas porno gratis abuelos
videos heroticos videos porno xxx incesto
supertetas tragando semen xxx
videos x incesto jovencitos follando con maduras
videos incesto online xxporn
mujeres fornicando padre se folla a su hija
pormo lesbianas maduras españolas
porno casero real español porno guey
mamasxxx shakira follando
incesto retro sexo guarro
se follan a su mujer maduras enculadas
taboo.com viejas feas
pornoo sexo gratis incesto
corriendose dentro putas en vic
maduras sensuales descargar peliculas porno español

Trebuie sa aduci carti si autorii lor. Este o relatie comuna 1: N. Implementarea frecvent utilizata prelueaza date printr-o interogare SQL cu uniri de tabel. A doua posibilitate este sa preluati date separat, sa rulati o interogare pentru obtinerea cartilor si apoi sa obtineti un autor pentru fiecare carte printr-o alta interogare (de exemplu, in ciclul dvs. de primavara). Acest lucru ar putea fi optimizat cu usurinta pentru a rula doar doua interogari, una pentru carti si alta pentru autorii necesari – si acesta este doar modul in care Nette Database Explorer o face.

Selectarea datelor incepe cu tabelul, trebuie doar sa apelati $ explorer-> table () pe obiectul Nette \ Database \ Explorer. Cel mai simplu mod de a-l obtine este descris aici, dar daca folosim singur Nette Database Explorer, acesta poate fi creat manual.

$ selection = $ explorer-> table (‘carte’); // numele tabelului db este „carte”

Putem pur si simplu sa repetati selectia si sa trecem prin toate cartile. Randurile sunt preluate ca instante ActiveRow; puteti citi date de rand din proprietatile lor.

$ carti = $ explorator-> tabel („carte”); foreach ($ carti ca $ carte) {echo $ carte-> titlu; ecou $ carte-> autor_id; }

Obtinerea unui singur rand specific se face prin metoda get (), care returneaza direct o instanta ActiveRow.

$ book = $ explorer-> table (‘book’) -> get (2); // returneaza cartea cu id 2 echo $ carte-> titlu; ecou $ carte-> autor_id;

Lucrul cu relatiile

$ carti = $ explorator-> tabel („carte”); foreach ($ carti ca $ carte) {echo ‘title:’. $ carte-> titlu; ecou ‘scris de:’. $ carte-> autor-> nume; ecou ‘tag-uri:’; foreach ($ book-> related (‘book_tag’) ca $ bookTag) {echo $ bookTag-> tag-> name. ‘,’; }}

Veti fi multumit cat de eficient functioneaza stratul bazei de date. Exemplul de mai sus efectueaza un numar constant de interogari, consultati urmatoarele 4 interogari:

SELECT * FROM `book` SELECT * FROM` author` WHERE (`author`.`id` IN (11, 12)) SELECT * FROM` book_tag` WHERE (`book_tag`.`book_id` IN (1, 4, 2 , 3)) SELECT * FROM `tag` WHERE (` tag`.`id` IN (21, 22, 23))

Daca utilizati cache (implicit activat), nicio coloana nu va fi interogata inutil. Dupa prima interogare, memoria cache va stoca numele coloanelor utilizate si Nette Database Explorer va rula interogari numai cu coloanele necesare:

SELECT `id`,` title`, `author_id` FROM` book` SELECT` id`, `name` FROM` author` WHERE (` author`.`id` IN (11, 12)) SELECT` book_id`, ` tag_id` FROM `book_tag` WHERE (` book_tag`.`book_id` IN (1, 4, 2, 3)) SELECTIONA `id`,` name` FROM `tag` WHERE (` tag`. , 22, 23))

Continua….