Lucrul cu bazele de date

Lucrul cu baze de date. Start.

De ce și modul de utilizare a bazei de date. Funcțiile de bază.

Tot ce pot spune ca o recomandare de a utiliza o bază de date - este că viața fără ei - doar moartea! Baza de date - exe-rază de lumină shnogo în datele programului întuneric interpretate. Baza de date aduce un pic de durere de cap, dar este nevoie de mult mai mult.







Ca un exemplu, luat serverul de baze de date MySQL (eu cred că stăpânit, vei învăța, iar celălalt fără multă dificultate. Într-o zi voi scrie despre ei dacă osvoyu :).

În primul rând, vom vorbi despre funcția PHP utilizat pentru a lucra cu MySQL. Să începem.

Administrare 1. Baza de date

Metode pentru administrarea bazelor de date, în ordinea de comoditate:

  • phpMyAdmin (foarte recomandat!)
  • Scrieți un script care ar denatura baza (a se vedea. Exemplu)
  • mysql.exe în pachetul MySQL
  • mysql_manager.exe (acolo, cum ar fi cât este posibil, chiar pe punctul de șamanism)

Am recomanda in special prima metodă. Din moment ce nu trebuie să studieze cererile ALTER TABLE, ADD Column, etc. Nu-i cunosc încă. Mai mult decât atât, că „astfel de întrebări, tovarășul ambasador, cu kondachka nu a rezolvat“ - atunci când trebuie să modificați automat structura bazei de date sau tabel? Câteva cuvinte despre cea de a doua metodă. Acest lucru este ca să spunem așa o tehnica de by-pass pe care l-am folosit, nu știe despre phpMyAdmin și mysqldump utilitate. Script-ul scris de echipa, de a îndepărta baza și de a crea-o din nou. După ce a ajutat, dar, în general, este, încă o dată spun eu, tehnologia de by-pass, „de rezervă“.

Pentru viitor: dacă aveți mai multe site-uri folosind baza de date, cel puțin, de a crea mai multe baze de date în serverul de acasă. Acest lucru va facilita activitatea serverului și să elimine posibilitatea de tabele confuzie. În general, regulile bazei de date sunt aceleași, iar site-ul - pentru a păstra într-un director separat de celelalte.

2. Un compus cu serverul de baze de date

realizată prin funcția mysql_connect: $ = mysql_connect conecta (<хост>, <логин>, <пароль>); În mod implicit, MySQL server, în tabela de utilizator are un utilizator root, care pot fi accesate numai de la localhost-bine, adică de la același calculator, în cazul în care există un server MySQL. ATENȚIE! „Având acces la localhost-ca“ înseamnă că accesul este script-ul PHP, și îl puteți accesa de pe orice alt computer.

Ce se întâmplă atunci când ne numim funcția mysql_connect? De la începutul execuției script-ul dvs., PHP alocă spațiul său de memorie pentru informații cu privire la aceasta și variabilele sale. Informația despre script-ul executat este stocat, inclusiv conexiunile de informații și baze de date. Dolari variabile conecta - aproximativ un pointer la locația unde este stocată informația. Parțial, acest lucru este exact la fel ca și ceilalți - dacă utilizați funcția, este necesar să se declare variabile globale care se referă la acesta.







De ce să folosiți chiar și o variabilă? Acesta este cazul dacă lucrarea trebuie să utilizați servere de baze de date multiple (sau, de exemplu, pentru a oferi o mai mare securitate utilizat conectări diferite, care pot avea diferite privilegii). În astfel de cazuri, fiecare cerere are nevoie de certitudine asupra a ceea ce, să spunem așa, există o comandă de canal. Dar, dacă folosiți doar o singură conexiune, specificați parametrii săi în funcțiile de interogare (despre ele - de mai jos) nu trebuie să -? PHP este primul (și în acest caz, numai) conexiunea stabilită și o folosește.

3. Cererea-eșantionare și prelucrarea rezultatelor

Mecanismul bazei de date funcție de interogări la fel ca și cea a funcției de conectare: cerere funcția parametrilor transmise și (dacă este necesar) compus și rezultatul este stocat într-o variabilă:

$ Rezultat = mysql_db_query (baza de date șir, interogare string [compusi variabila]);

$ Rezultat = mysql_query (query string [compuși variabila]);

ATENȚIE! Pentru a utiliza funcția mysql_query, în care baza de date nu este specificat, trebuie să selectați mai întâi baza de date:

mysql_select_db (baza de date string);

Avem acum un rezultat $ variabila. Acesta este un pointer la rezultatul interogării. Există un anumit număr de rânduri în tabel. Obține aceste linii este posibil prin funcția mysql_fetch_row și mysql_fetch_array:


echo "

„;
în timp ce ($ row = mysql_fetch_array ($ rezultat))
echo "„;
echo "
"$ Row [" field1 "],""$ Row [" field2 "],"
„;

Funcția mysql_fetch_array produce o variabilă specificată (în acest caz, $ rând) indici de matrice care - câmpul nume (și, dacă solicitați în scris o listă de câmpuri table.field, indicele matrice este domeniu). mysql_fetch_row produce o matrice a cărui indice - numărul, începând cu 0.

Care este funcția de utilizare mai bună? Dacă solicitați un asterisc, și anume toate câmpurile din tabel, și câmpurile de ieșire la un anumit posledovatelnosi (atunci când, de exemplu, un tabel capac desenat), este mai bine să utilizați mysql_fetch_array. Dacă solicitați un câmp de unu-doi-trei, știind în mod clar succesiunea lor, puteți face mysql_fetch_row - acest lucru va reduce dimensiunea codului de program.

4. Cerere de acțiune

Această comandă DELETE și UPDATE. Astfel de cereri - în „drepturile“ sunt la fel ca SELECT, astfel încât serverul de trimiterea de comenzi se produce în același mod - mysql_query (mysql_db_query). Dar, în acest caz, funcția nu returnează un rezultat:

$ Rezultat = mysql_query ( "SELECT * FROM sometable");
dar
mysql_query ( "DELETE FROM sometable unde id =".);

Prin urmare, dacă vom executa interogarea, descărca și scrie rezultatul în datele variabile nu vor fi stocate oriunde.

5. Cereri de eroare de manipulare

ultimul mesaj de eroare se poate obține prin funcția mysql_error:

echo:, mysql_error (); "O eroare de bază de date MySQL scrie."

În cazul în care rezultatul funcției este scris într-o variabilă, puteți verifica:

$ Rezultat = mysql_query (cerere $);
în cazul în care (! $ rezultat)
echo:, mysql_error (); "O eroare de bază de date MySQL scrie."
echo altceva "

„;
în timp ce ($ row = mysql_fetch_array ($ rezultat))
echo "„;
echo "
"$ Row [" field1 "],""$ Row [" field2 "],"
„;
>;

În cazul în care variabila nu se scrie, astfel:


$ Cerere = "UPDATE (.)";
mysql_query (cerere $);
if (! mysql_error ())
echo „actualizare a datelor a fost de succes!“;
echo altceva "O eroare de baze de date MySQL scrie:", mysql_error ();

În cazul în care cererea este generată automat, puteți afișa și interogare în sine (util pentru a crea o variabilă care ar conține, și de a folosi ca un parametru funcție).