MySQL solicită exemple în PHP. SQL - solicitări și prelucrarea acestora utilizând PHP

Lucrul cu baza de date MySQL cu RNR

Lectura. PROKHOROV preparat vs.


1. Conectarea scenariilor PNP cu mesele MySQL

Luați în considerare cele mai frecvent utilizate caracteristici care vă permit să lucrați cu baza de date MySQL de către RNR.

Când RNR și MySQL interacționează, programul interacționează cu DBMS prin intermediul unui set de funcții.

1.1 Conectarea la server. Funcţiemysql_connect.

Înainte de a lucra cu baza de date, trebuie să instalați cu el conexiune retea, precum și autorizarea utilizatorilor. Aceasta este funcția mysql_connect ().

resurse Mysql_Connect (]])

Această caracteristică stabilește conexiunea la rețea la baza de date MySQL situată pe gazda Serverului $ (implicit este localhost, adică computerul curent) și returnează un identificator de conexiune deschisă. Toate lucrările ulterioare se desfășoară cu acest identificator. Toate celelalte funcții care ia acest identificator (descriptor) ca argument vor defini în mod unic baza de date selectată. La înregistrare, numele de utilizator este $ Nume de utilizator și parola de parolă $ (în mod implicit, numele de utilizator din care funcționează procesul curent - când depanează scripturi: root și o parolă goală):

$ dbpasswd \u003d ""; //Parola

// afișați un avertisment

echo ("

");

Variabile $ dblococație, $ dbuser și $ dbpasswd magazin nume server, nume de utilizator și parolă.

1.2 Trimiteți conexiunea la server. Funcţiemysql_close.

Conectarea la serverul MySQL va fi închisă automat la sfârșitul scriptului sau când apelați funcția MySQL_Close

bool mysql_close ()

Această caracteristică sparge conexiunea la serverul MySQL și returnează adevărat cu execuția cu succes a operațiunii și a fals altfel. Funcția acceptă un descriptor de conectare la baza de date ca argument returnat de funcția MySQL_CONNECT.

$ dblocation \u003d "localhost"; // Numele serverului

$ dbuser \u003d "rădăcină"; //Nume de utilizator

$ dbpasswd \u003d ""; //Parola

// Introduceți conexiunea la serverul de baze de date

// suprima simbolul de ieșire de eroare @ înainte de a apela funcția

$ dbcnx \u003d @ mysql_connect ($ dblococ, $ dbuser, $ dbpasswd);

dacă (! $ dbcnx) // Dacă descriptorul este 0, conexiunea nu este instalată

// afișați un avertisment

echo ("

B. în prezent Serverul bazei de date nu este disponibil, astfel încât afișajul corect al paginii nu este posibil.");

dacă (mysql_close ($ dbcnx)) // rupe conexiunea

eCHO (Conectarea la baza de date este întreruptă ");

echo ("a reușit să finalizeze conexiunea");

1.3 Crearea unei baze de date. Creați caracteristica bazei de date

Comanda - Crearea unei baze de date este disponibilă numai administratorului de server și, pe cea mai mare găzduire, este imposibil să o efectuați:

Creați nume de bază de date bazat pe

Creează o nouă bază de date cu numele legării numelui.

Un exemplu de lucru cu această caracteristică:

@Mysql_Query ("Creați baza de date $ dbname");

Se recomandă utilizarea apostrofelor peste tot ("SQL - comanda") ca limitatoare ale liniilor care conțin comenzi SQL. Acest lucru se poate asigura că nici o variabilă nu va fi interpolată accidentală (adică nu va fi înlocuită cu valoarea sa), iar siguranța scripturilor va crește.

Comanda Creare Baza de date a bazei de date este disponibilă numai la SuperUser, și este imposibil să efectuați un utilizator simplu pe majoritatea utilizatorilor de găzduire. Este disponibil numai administratorului de server.

Pentru experimente, creați o bază de date de testBase prin efectuarea unei interogări SQL din linia de comandă. Pentru a face acest lucru, conectați-vă la sistemul MySQL și introduceți-l linie de comanda MySQL:

mySQL\u003e Creați test de bază de baze de date;

După aceea, ar trebui să formați:

mySQL\u003e Utilizați testBase;

Baza de date este creată:


1.4 Selectați baza de date. Funcţiemysql_select_db.

Înainte de a trimite prima solicitare către serverul MySQL, trebuie să specificați care baza de date pe care o vom lucra. În acest scop, funcția MySQL_SELECT_DB este destinată:

bOOL MySQL_SELECT_DB (String $ Database_name [, Resurse $ link_identifier])

Ea notifică PHP că, în alte operațiuni, cu o conexiune $ Link_identifier, va fi folosit $ nume de date_name.

Folosind această funcție este echivalentă cu Apelarea unei comenzi de utilizare într-o interogare SQL, adică funcția MySQL_SELECT_DB selectează o bază de date pentru lucrări ulterioare și toate interogările SQL ulterioare se aplică la baza de date selectată. Funcția ia numele bazei de date selectate de baze de date_name ca argumente și descriptorul conexiunii de resurse. Funcția returnează adevărată cu funcționarea cu succes și fals - în caz contrar:

// Codul conexiunii cu baza de date

dacă (! @MYSQL_SELECT_DB ($ dbname, $ dbcnx))

// afișați un avertisment

echo ("

B Acum baza de date nu este disponibilă, astfel încât afișajul corect al paginii nu este posibil.");

1.5 Erori de procesare

Dacă apar erori în timpul lucrului cu MySQL (de exemplu, instrucțiunile nu sunt echilibrate sau nu sunt suficiente parametri), apoi mesajul de eroare și numărul acestuia pot fi obținute utilizând cele două funcții descrise mai jos.

Este important să fie cu atenție și să folosiți aceste funcții în timp util, deoarece altfel depanarea scripturilor poate deveni mai complicată.

● Funcție:

int mysql_errno ()

returnează numărul celei mai recente erori înregistrate. Nu puteți specifica identificatorul de conexiune $ link_IdentSfier dacă a fost instalată doar o singură conexiune în timpul timpului de funcționare a scriptului.

● Funcție:

string mysql_error ()

returnează un număr, ci un șir care conține textul mesajului de eroare. Este convenabil să se aplice în scopuri de depanare. De obicei, MySQL_Error este utilizat cu designul sau matrița (), de exemplu:

@MySql_Connect ("localhost", "utilizator", "parolă")

sau mor ("Eroare la conectarea la o bază de date:" .mysql_error ());

Operatorul @, ca de obicei, este utilizat pentru a suprima avertismentul standard, care poate apărea în cazul unei erori.

ÎN versiuni recente Avertizarea RNR în funcțiile MySQL nu sunt înregistrate în mod implicit.

1.6 Conectarea la MySQL. Fișier (config.php.)

De obicei, pe site există mai multe script-uri simultan, pe care aveți nevoie de acces la aceeași bază de date.

Codul responsabil pentru conectarea la MySQL este recomandat să fie alocat în fișier separat.și apoi conectați-vă utilizând funcția include scripturile necesare.

Este logic de a plasa funcții pentru conectare, selectare și creare a unei baze de date în același fișier (config.php), unde variabilele sunt declarate cu numele serverului $ DBLOCACAM, numele de utilizator DBUSER, parola $ dbpasswd și numele de Numele de bază de date $ DBNAME:

CONFIG.PHP Listing:

//config.php Codul fișierului care conține parametrii de conectare cu selecția serverului și a bazei de date

// afișează mesaje de eroare către browser

$ dblocation \u003d "localhost"; // Numele serverului

$ dbname \u003d "inserați numele de bază" // Numele bazei de date: creat sau deja existent

$ dbuser \u003d "rădăcină"; // Numele utilizatorului bazei de date

$ dbpasswd \u003d ""; //Parola

// Introduceți conexiunea la serverul de baze de date

// suprima simbolul de ieșire de eroare @ înainte de a apela funcția

[E-mail protejat]_Connect ($ dblococ, $ dbuser, $ dbpasswd);

dacă (! $ dbcnx) // Dacă descriptorul este 0, conexiunea la serverul de baze de date nu este instalată

// afișați un avertisment

echo ("

În prezent, serverul de baze de date nu este disponibil, deci afișarea corectă a paginii este imposibilă.

");

// Creați o bază de date $ DBNAME - poate face doar un superuser

// Dacă există deja baza de date, va exista o eroare non-critică

@Mysql_Query ("Creați baza de date dacă nu există $ DBNAME ');

// Codul conexiunii cu o bază de date: realizăm o selecție neechivocă a bazei de date nou create sau a unei baze de date existente

// suprima simbolul de ieșire de eroare @ înainte de a apela funcția

dacă ( [E-mail protejat]_Select_db ($ dbname, $ dbcnx)) // Dacă descriptorul este 0, conexiunea bazei de date nu este instalată

// afișați un avertisment

echo ("

În prezent, baza de date nu este disponibilă, astfel încât afișarea corectă a paginii este imposibilă.

");

// Mic funcția auxiliarăcare afișează mesajul

// despre eroarea în cazul unei erori de solicitare a bazei de date

funcția Puterror ($ mesaj)

echo ("");


2. Efectuați interogări de bază de date

2.1 Crearea unui tabel. Funcţie Creați tabel:

Creați numele tabelului de tabel (tipul de nume, tipul de nume,)

Această comandă din baza de date creează o nouă masă cu coloane (câmpuri), definite prin propriile sale nume (nume) și de tipuri specificate. După crearea tabelului, va fi posibilă adăugarea înregistrărilor constând din câmpurile enumerate în această comandă.

Listing test_11.php. Un program care creează un nou tabel în baza de date:

includeți "config.php"; // Conectați la selectarea serverului și a bazei de date

mysql_query ("Creați tabel dacă nu există oameni

id int auto_increment cheie cheie,

sau mor ("eroare MySQL:" .mysql_error ());


Acest script creează o masă de oameni noi cu două câmpuri. Primul câmp are un ID Type (Integer) și numele de nume. Al doilea text Tip (șir de text) și numele de nume.

Dacă există tabelul, designul sau matrița va funcționa.

Fraza opțională Dacă nu depășește, dacă este specificată, spune serverul MySQL, că nu ar trebui să genereze un mesaj de eroare dacă tabelul cu numele specificat există deja în baza de date.

Amintiți-vă acele vremuri când nu știam ce mysql. Și adesea a căutat astfel de articole pe Internet. Dar, din anumite motive, au fost rareori găsite. Acum am decis să stau astfel de articole utile despre mysql. și pHP. A devenit unul mai mult. Voi încerca să scriu totul într-un limbaj accesibil.

noțiuni de bază cu MySQL și PHP

Deci, pentru început, avem nevoie de un server local pentru a fi lansat scripturile PHP și conectați-vă la baza de date (apoi vom apela baza de date, ceea ce înseamnă "baza de date"). Dacă încă nu aveți un server local, trebuie mai întâi să citiți instalarea și configurația gazdă locală., apoi începeți să studiați baza de date mysql. și DBMS (înseamnă gestionarea bazei de date).

Dacă aveți deja acest server, facem acest lucru. Pentru a începe cu, vreau să vă prezint la DBMS Phpmyadmin.Vă permite să gestionați (adăugați, ștergeți, modificați) înregistrări în baza de date.

Aceasta este prima pagină Dbms phpmyadmin.. De aici puteți crea baza de date și puteți depozita intrările necesare în acesta. Este foarte convenabil la crearea de site-uri, deoarece informațiile sunt structurate și puteți obține foarte repede orice intrare din baza de date.

După cum sa menționat deja, prima parte a articolului, cunoștință cu mysql. și phpmyadmin.. Cred că acum înțelegeți ce este MySQL și putem începe să exploram funcționalitatea PhpMyadmin. Pentru a începe munca, trebuie să creăm baza de date în sine (baza de date). Ea va avea propriul nume pentru care o vom căuta mai târziu.

Iată structura generală a structurii bazei de date:

Pentru a crea o bază de date, introduceți în câmpul de introducere din linia "Creați o nouă bază de date" (pe pagina principală a phpmyadminului) orice nume (nu chirilic!) Pentru baza viitoare. Voi crea o bază de date numită "Baza". Acum, după diagrama structurii BD, trebuie să facem o masă. Pentru a face acest lucru, după crearea bazei, veți avea o astfel de fereastră:

Aici creez o masă cu numele utilizatorilor și 3 câmpuri în ea. Alte PhpMyAdmin ne va cere să stabilim structura fiecărui domeniu:

Aici, în coloana "Field", trebuie să specificați numele, în "Tipul" Specificați tipul de date care vor fi stocate acolo (int este numărul, linia Varchar sau textul mic (!)). În plus, specificați câmpul numit "ID" Parametru "Auto_increament", ceea ce înseamnă că va crește de fiecare dată când introduceți orice date și setați parametrul "Cheia primară" (puneți o rulare), înseamnă că în prima coloană putem identificați cu siguranță câmpul.

"În mod sigur identifică câmpul" înseamnă chiar dacă numele și prenumele vor fi aceleași, coloana de identificare va avea valori diferite (deoarece crește automat pe unitate de fiecare dată).

Acum faceți clic pe "Salvați". Astfel, am creat un tabel de utilizatori în care putem stoca numele și prenumele (nu trebuie introdus ID-ul, MySQL va face totul pentru noi), în utilizatorii de baze de date. Am creat tabelul pentru stocarea înregistrărilor. Și cum să le inserați acolo? Cititi mai jos

Selectați în meniul "Paste" și scrieți valorile dorite în câmpurile obligatorii. Acum, cum să ștergeți sau să modificați valorile din baza de date MySQL din baza de date PHPMYADMIN ... pentru a șterge, du-te la meniul de prezentare și apăsați pe capul roșu opus înregistrare:

Și pentru editare, faceți clic pe creion și înlocuiți câmpurile necesare. Ei bine, pe această lecție este terminată. Acum puteți gestiona baza de date MySQL folosind PhpMyAdmin. În următoarea lecție, vă voi învăța să stocați, să primiți, să ștergeți și să actualizați datele din baza de date folosind PHP.. Este foarte convenabil și practic.

Lucrul cu baza de date MySQL de la PHP

Deci, mai întâi trebuie să învățați să vă conectați la baza de date deja creată. Pentru a face acest lucru, acest cod este utilizat:

În codul de mai sus, am conectat la serverul localhost folosind autentificarea rădăcină care nu necesită o parolă (prin urmare, nu o specificați). După conectarea la baza de date, putem realiza toate operațiunile care au fost efectuate în PhpMyAdmin. Aceasta este, introduceți, ștergeți, modificați și obțineți diverse informații. Acum, pe puncte:

Introduceți intrările în baza de date SQL pe PHP

$ Query \u003d "Introduceți în" tabelul "(" Point câmpul "," Specificați câmpul ") (" orice valoare "," orice valoare ")"; $ rezultat \u003d mysql_query (£ interogare); Dacă ($ rezultatul \u003d\u003d TRUE) (Echo "de succes!";) altceva (ECHO "Eroare!
".mysql_error ();)

Adică, inserția se face prin funcția de inserție. Dacă totul a mers cu succes, MySQL va returna rezultatul adevărat sau altfel - fals.

Câmpurile pot fi specificate cel puțin cât de mult, principalul lucru este că toți au existat în baza de date. Aceasta este, de exemplu, există o masă în care există câmpuri "nume", "prenume" și "oraș". Pentru a introduce în ea, vom folosi un astfel de cod:

$ Query \u003d "Introduceți în" Numele utilizatorilor "," Numele "," orașul ") (" Ruslan "," Huzin "," Kokhetau ")"; $ rezultat \u003d mysql_query (£ interogare); Dacă ($ rezultatul \u003d\u003d TRUE) (Echo "de succes!";) altceva (ECHO "Eroare!
".mysql_error ();)

Eliminarea intrărilor din baza de date SQL la PHP

Ștergerea este efectuată de funcția de ștergere. Pentru aceasta va fi ceva de genul acestui cod:

$ Query \u003d "Ștergeți de la" Utilizatori "în cazul în care" numele "\u003d" Ruslan ""; $ rezultat \u003d mysql_query (£ interogare); Dacă ($ rezultatul \u003d\u003d TRUE) (Echo "de succes!";) altceva (ECHO "Eroare!
".mysql_error ();)

Asta este, ștergem toate liniile din tabelul USSS (bine sau unu), în care coloana de nume este egală cu valoarea Ruslan.

Schimbarea valorilor din baza de date MySQL pe PHP

De asemenea, putem face schimbări în înregistrările deja existente în tabel. De exemplu, trebuie să înlocuim valoarea coloanei de nume la rând, unde coloana de familie este Huzin. Pentru a face acest lucru, efectuați un astfel de cod:

$ Query \u003d "Update` set de utilizatori" Nume` \u003d "MyName" unde "numele de familie" \u003d "Huzin"; $ rezultat \u003d mysql_query (£ interogare); Dacă ($ rezultatul \u003d\u003d TRUE) (Echo "de succes!";) altceva (ECHO "Eroare!
".mysql_error ();)

Obținerea valorilor din baza de date

Acum cel mai interesant. Odată ce am înregistrat ceva, atunci ar trebui să vă întoarceți? De exemplu, trebuie să obținem de la mese de utilizatori toată linia în care coloana de nume este egală cu Ruslan. Pentru a face acest lucru, avem nevoie de un cod mic decât în \u200b\u200bprimele exemple. Iată de fapt el:

$ Query \u003d "Selectați * de la data" Nume "\u003d" Ruslan ""; $ rezultat \u003d mysql_query (£ interogare); Dacă ($ rezultatul \u003d\u003d TRUE) (Echo "de succes!";) altceva (ECHO "Eroare!
".mysql_error ();) $ da date \u003d mysql_fetch_array ($ rezultat); / * Acum datele din tabel sunt stocate în variabila * /

Aici aveam nevoie de o altă caracteristică, pentru a înregistra datele selectate în variabila (matrice) pe PHP. Pentru a contacta șirul selectat, scriem astfel:

$ Date ["Nume coloana"]

adică pentru a obține numele de familie de la linia selectată (în cazul în care numele a fost Ruslan), ar trebui să scriem la concluzia:

eCHO $ \u200b\u200bDate ["Prenume"];

Și când eșantionarea de la masă, am scris Selectați *, acest asterisc înseamnă că trebuie să selectați toate coloanele din șir. Dacă avem nevoie, de exemplu, alegem numai numele de familie, scrieți selectați "Număr de familie". Și pentru eșantionarea la o dată mai multe linii de la masă, ciclul va fi, de asemenea, necesar pentru producția lor. Acest lucru este, de exemplu, rândurile cu coloana Ruslan vor fi mai multe. Iată codul:

$ Query \u003d "Selectați * de la data" Nume "\u003d" Ruslan ""; $ rezultat \u003d mysql_query (£ interogare); în timp ce ($ date \u003d mysql_fetch_array ($ rezultat)) (ECHO $ \u200b\u200bDate ["Nume"]. "
"$ Date [" prenume "]."


"; }

Acum toate liniile din care vor fi afișate coloana de nume egală cu valoarea lui Ruslan.

Aici ați întâlnit funcțiile principale de control baza de date MySQL. direct de la pHP Script..

În acest articol vom învăța trimiteți cereri în baza de date prin PHP. Acest articol este foarte important, și este necesar să înțelegeți. Cu toate acestea, vă voi calma - materialul este foarte simplu, deci nu ar trebui să existe nici o dificultate.

Înainte de a trece la subiectul articolului, am avertizat în prealabil că nu voi dezasambla în detaliu limba SQL.. Toate informațiile necesare dezasamblate în categoria dedicate, iar aici suntem numai lucrăm cu MySQL prin PHP.

Acum mergeți la K. trimiterea cererilor de baze de date către PHP:


}
$ Mysqli-\u003e interogare ("inserați în valorile mytable (nume, e-mail) (" MyName "," [E-mail protejat]")");
$ mysqli-\u003e close ();
?>

În acest exemplu, ne-am conectat la baza de date, am verificat succesul conexiunii, am trimis o solicitare utilizând metoda interogare ()Și apoi închise conexiunea. După cum puteți vedea, totul este foarte simplu. Pentru a trimite orice SQL interogări doar o singură metodă - interogare ()Prin urmare, în acest caz, totul este extrem de simplu.

Acum complică ușor sarcina. Să ne uităm la cererile care se întorc setul de rezultate. - Rezultat. Cea mai populară cerere a fost redată setul de rezultate. - Acesta este un eșantion de date din tabel. În exemplul următor, vom face o probă de date și apoi vom rezuma rezultatul:

$ mysqli \u003d @ nou Mysqli ("localhost", "admin", "pass", "mybase");
dacă (mysqli_connect_errno ()) (
ECHO "Conexiunea nu este posibilă:" .mysqli_connect_error ();
}
$ rezultate_set \u003d $ mysqli-\u003e
În timp ce ($ rând \u003d $ rezultat_set-\u003e fetch_assoc ()) (
Print_r ($ rând);
Echo "
";
}
$ rezultate_set-\u003e close ();
$ mysqli-\u003e close ();
?>

Pentru a începe, voi explica un pic, care este setul de rezultate.. Setul de rezultate. - Acesta este un tabel cu un rezultat. Acest tabel are un set de înregistrări (linii de masă). Și pentru ieșirea tuturor înregistrărilor, trebuie să mutați fiecare linie a tabelului și să o retrageți. Și acum explic un exemplu: După trimiterea unei cereri, suntem formați setul de rezultate.. Apoi atribuim o variabilă în ciclu rând Valoarea liniei următoare, adică o matrice unidimensională care returnează metoda fetch_assoc (). Când toate liniile sunt terminate, metoda fetch_assoc () întoarcere falsși va fi eliberat din ciclu. În interiorul ciclurilor in timp ce Pur și simplu derivă o serie utilizând funcția de depanare. print_r ()Deși cu siguranță ar fi posibil să se retragă utilizarea pentru fiecare.Dar acum nu este necesar.

Să rezumăm pe scurt cum să lucrăm cu setul de rezultate.:

  1. A primi setul de rezultate.Prin trimiterea cererii corespunzătoare la baza de date.
  2. În ciclul fiecărei iterație pentru a atribui următoarea linie (înregistrare) de la setul de rezultate. folosind o metodă fetch_assoc () Unele variabile rând. Apoi puteți lucra cu această variabilă ca și cu o matrice asociativă unidimensională, în care cheile sunt numele câmpurilor tabelului, iar valorile corespund intrării curente.
  3. Asigurați-vă că închideți setul de rezultate. Metodă Închide ()Pentru a acoperi resursele.

Cum ați observat metoda fetch_assoc () Returnează întotdeauna înregistrarea următoare. Adică primul 1, apoi al doilea, apoi al treilea și așa mai departe. Dacă aveți o experiență de programare bună, veți ghici imediat că acest lucru se datorează indicatorului interior, pe care, desigur, îl puteți mișca. Unde este folosit? De exemplu, poate fi folosit când trebuie să lucrați cu setul de rezultate. nu 1 , dar 2 Mai mult de o dată. Pentru a reforma aceeași solicitare, puteți să mutați pointerul la început. Și apoi vă puteți angaja din nou setul de rezultate. Folosind metoda Fetch_assoc ().

Pentru a schimba poziția indicatorului, există o metodă data_seek ()care ia un număr întreg de la 0 inainte de " numărul de înregistrări - 1", respectiv, indicatorul se ridică la parametrul de înregistrare corespunzător:

$ mysqli \u003d @ nou Mysqli ("localhost", "admin", "pass", "mybase");
dacă (mysqli_connect_errno ()) (
ECHO "Conexiunea nu este posibilă:" .mysqli_connect_error ();
}
$ rezultate_set \u003d $ mysqli-\u003e interogare ("selectați * de la mytable");
$ rezultat_set-\u003e Num_rows;
În timp ce ($ rând \u003d $ rezultat_set-\u003e fetch_assoc ()) (
Print_r ($ rând);
Echo "
";
}
$ Rezultat_set-\u003e Data_seek (0);
În timp ce ($ rând \u003d $ rezultat_set-\u003e fetch_assoc ()) (
Print_r ($ rând);
Echo "
";
}
$ rezultate_set-\u003e close ();
$ mysqli-\u003e close ();
?>

În acest exemplu, am adus numărul de înregistrări în rezultat_set Folosind proprietatea num_rows.. Și, de asemenea, sa familiarizat cu metoda data_seek (). Adică am trecut peste tot rezultat, apoi am întors pointerul la 0 Y. Înregistrați și din nou a trecut rezultatul.

În acest articol, am repetat conexiunea la baza de date și închiderea conexiunii. Și, de asemenea, învățat cum să trimiteți cereri în baza de date prin PHP. Învățat, cum să primiți rezultatul_set. Și cum să lucrezi cu el. Asta e tot ce trebuie să știi pentru succes lucrați cu MySQL în PHP.

Pentru a obține revenirea maximă din baza de date MySQL, este important să înțelegeți cum să vă conectați de la programul de utilizator la PHP în baza de date MySQL.

Acest manual descrie următoarele trei metode împreună cu programul corespunzător al unui program de exemplu pe PHP, care va explica modul de conectare la PHP în baza de date.

  • Conexiune utilizând extensia Mysqli (recomandată)
  • Conectarea cu DOP (recomandată)
  • Conexiune folosind funcții tradiționale depășite mysql_ (valoarea de referință)

Pentru a face acest lucru, instalați pachetul PHP-MySQL.

Pe baza distribuției Redhat, inclusiv, utilizați yum pentru a instala PHP-MySQL, după cum se arată mai jos.

Yum instalați php-mysql

În funcție de sistemul dvs., vom instala sau actualiza următoarele dependențe:

  • pHP-CII.
  • pHP-comună
  • pHP-DO.
  • pHP-PGSQL.

După ce totul este instalat, pagina Phpinfo va afișa modulul MySQL, după cum se arată mai jos:

Pentru toate exemplele de mai jos, vă vom conecta la baza de date MySQL care există deja. Dacă sunteți nou la MySQL, acesta este un loc bun pentru a începe :.

Notă: Tot ce este descris aici va lucra și cu Mariadb, deoarece funcționează pe MySQL.

1. Conectarea la PHP utilizând extensia Mysqli

Mysqli înseamnă MySQL sa îmbunătățit.

Rețineți că majoritatea distribuțiilor (de exemplu: CentOS), PHP-Mysqli fac deja parte din pachetul PHP-MySQL. Astfel, nu trebuie să căutați și să instalați pachetul PHP-Mysqli. Tot ce trebuie să faceți este să instalați pachetul PHP-MySQL pentru a obține extensia MySqli de lucru pe sistemul dvs.

Creați următorul fișier Mysqli.php în Documentroot Vapache:

connect_Error) (Die ("Eroare: Imposibil de conectat:" $ Conn-\u003e Connect_Error);) Echo "Conectați-vă la o bază de date.
"$ rezultat \u003d $ Conn-\u003e Interogare (" selectați numele de la angajat "); Echo" Număr de rânduri: $ rezultat-\u003e Num_rows "; $ rezultat-\u003e close (); $ conn-\u003e close ();

În cele de mai sus:

  • Mysqli - Această caracteristică va iniția o nouă conexiune utilizând extensia Mysqli. Această caracteristică va dura patru argumente:
    1. Numele gazdei în care funcționează baza de date MySQL
    2. Numele de utilizator pentru conexiunea MySQL
    3. Parola de utilizator MySQL.
    4. Baza de date MySQL pentru conectare.
  • Funcția de interogare - Utilizați-o pentru a specifica solicitarea MySQL. În acest exemplu, alegem coloana Name din baza de date a angajaților.
  • În cele din urmă, afișăm numărul de rânduri selectate utilizând variabila Num_rows. De asemenea, închidem conexiunea după cum se arată mai sus.

Conectați-vă la baza de date. Numărul de șiruri de caractere: 4

Notă: Dacă încercați să vă conectați la o bază de date MySQL la distanță, puteți să o faceți pentru a evita eroarea conexiunii la gazdă: Cum să permiteți clientului MySQL să se conecteze la serverul de la distanță MySQL.

2. Conexiune utilizând PHP la MySQL cu extensia DOP

DOP înseamnă obiecte de date PHP.

PDO_MYSQL implementează interfața DOP furnizată de PHR pentru a conecta programul la baza de date MySQL.

În majoritatea distribuțiilor Linux (de exemplu, CentOS și Redhat), pachetul PHP-DDO este deja inclus în pachetul PHP-MySQL. Astfel, nu trebuie să căutați și să instalați pachetul PHP-DOP. Tot ce trebuie să faceți este să instalați pachetul PHP-MySQL pentru a obține extensia de rulare PDO_MYSQL PHP pe sistemul dvs.

Creați următorul fișier MySQL-DOP.PHP în Documentroot Apache:

setTtribute (DOP :: Attr_ermode, DOP :: Errmode_Exception); Echo "Conectați-vă la baza de date.
"$ sql \u003d" Selectați numele de la angajat "; Imprimați" Numele angajatului:
"; FOREACH ($ Conn-\u003e Interogare ($ sql) ca $ rând) (imprimați $ rând [" nume "]."
";) $ Conn \u003d null;) Catch (ECHO" Eroare: Imposibil de conectat: "$ err-\u003e getMessage ();)?\u003e

În cele de mai sus:

  • noul DOP - va crea un nou obiect DOP care va lua următoarele trei argumente:
    1. String de conexiune MySQL: va fi în formatul "MySQL: Host \u003d $ hostname; dbname \u003d $ dbname". În exemplul de mai sus, baza de date funcționează pe o gazdă locală și ne conectăm la baza de date Andreyex.
    2. Numele de utilizator pentru conectarea la MySQL.
    3. Parola pentru utilizatorul MySQL.
  • $ SQL variabil - Crearea unei interogări SQL pe care doriți să le efectuați. În acest exemplu, alegem coloana de nume din tabelul angajatului.
  • interogare ($ SQL) - Aici efectuăm solicitarea SQL, pe care tocmai am creat-o.
  • fOREAH - Aici trecem prin comenzile de mai sus și le salvăm într-o linie variabilă $, și apoi le arătăm folosind comanda de imprimare.
  • În MySQL DOP pentru a închide conexiunea, pur și simplu resetați valoarea variabilei $ Conn.

Când apelați mysqli.php din browserul dvs., veți vedea următoarea concluzie, ceea ce indică faptul că PHP a putut să se conecteze la baza de date MySQL și să facă un eșantion de date.

Conectați-vă la baza de date. Numele ofițerului: Siteslan Maria Oleg

3. Conectarea la PHP utilizând funcțiile MySQL_ (valoarea de referință)

Utilizați această metodă numai dacă utilizați versiunea PHP mai veche și nu o puteți actualiza la noua versiune din anumite motive.

Aceasta este o extensie PHP 5.5 depășită. Dar începând cu versiunea PHP 7.0, nu va funcționa, deoarece a fost eliminată.

Începând cu versiunile PHP 5.5 când utilizați aceste funcții, acestea vor genera erori e_deprecate.

Creați următorul fișier MySQL-Legacy.Pphp sub Documentroot Apache:

"$ rezultat \u003d mysql_query); $ rând \u003d mysql_fetch_row ($ rezultat); Echo" Angajat 1: ", $ rând",
\\ n "; mysql_close ($ conn);?\u003e

În cele de mai sus:

  • Funcția MySQL_CONNECT are trei argumente: 1) Numele gazdei, unde funcționează baza de date MySQL, 2) Nume de utilizator pentru conectarea la MySQL, 3) Parolă pentru MySQL. Aici vă conectați la baza de date MySQL, care rulează pe serverul local utilizând numele de utilizator rădăcină și parola acesteia.
  • Funcția MySQL_SELECT_DB - după cum urmează din nume, va alege baza de date la care doriți să vă conectați. Aceasta este echivalentă cu comanda "Utilizare". În acest exemplu, ne conectăm la baza de date Andreyex.
  • Funcție MySql_Query - Utilizați-l pentru a specifica solicitarea MySQL. În acest exemplu, alegem coloana Name din baza de date a angajaților.
  • mySQL_FETCH_ROW - Utilizați această caracteristică pentru a extrage rânduri de la interogarea SQL pe care tocmai am creat-o.
  • În cele din urmă, închideți conexiunea utilizând comanda mysql_close, după cum se arată mai sus.

Când sunați la MySQL-Legacy.Php din browserul dvs., veți vedea următoarea concluzie, ceea ce indică faptul că PHP a reușit să se conecteze la baza de date MySQL și să facă un eșantion de date.

Conectați-vă la baza de date. Angajatul 1: Andreyex

Cu php ...

Crearea unei conexiuni în moduri diferite:

1) Metoda OLD DEDOVSKY de conectare la MySQL:

$ Con \u003d mysql_connect ($ db_hostname, $ db_username, $ db_password) sau matri ("fără conexiune la server");
mysql_select_db ($ db_database, $ Conn) sau Die ("Nu a reușit să se conecteze la baza de date");

Explicarea variabilei de mai jos.

În același timp, se utilizează funcții:

  • mysql_connect () - să vă conectați la server;
  • mysql_select_db () - să vă conectați la baza de date;

În același timp, verificăm constant prezența unei erori în acest fel: sau muriți ("Eroare este așa"); - Traduceți ca sau mor cu o astfel de eroare - pentru a găsi imediat unde este eroarea.

config.php.

// variabile pentru conectarea cu baza de date
$ Gazdă \u003d "localhost"; / Gazdă
$ username \u003d "rădăcină"; // Parola pentru conectarea la baza de date
$ parola \u003d ""; // Parola pentru a fura la baza de date - pe computerul local poate avea o valoare goală.
$ Database_name \u003d "My-Dolgi"; // numele BD.

// modul vechi de a trăi cu baza de date
Mysql_connect (Host Host, $ nume de utilizator, $ parola) sau matri ("Nu pot conecta la crearea compusului");

// Selectați baza de date. Dacă eroarea este afișată
MySQL_SELECT_DB ($ BASE_NAME) sau DIE (MySQL_ERROR ());

index.php.

necesită_once "config.php";


$ Rezultat \u003d mysql_query ("Selectați numele, banii de la Dolg Comandă de Bank Desc Limita 5") sau Die (mysql_error ());



";


În timp ce ($ rând \u003d mysql_fetch_assoc (rezultatul $)) (
";
}


mysql_free_result (rezultatul $);

// Închideți conexiunea
mysql_close ();

2) Stilul procedural mai progresiv - conectarea cu baza de date cu Mysqli:

Aceasta metoda:

  1. convenabil;
  2. mai repede până la 40 de ori;
  3. siguranță îmbunătățită;
  4. există noi caracteristici și funcții;

Exemplu de conectare cu baza de date pe PHP cu un eșantion din tabel

config.php.

// sociologie cu baza de date
$ link \u003d mysqli_connect ("localhost", "nume de utilizator", "parolă", "nume-bază de date"); // aici intru direct datele dvs .: numele de utilizator, parola și numele bazei de date, primul câmp de obicei localhost

// ieșire eroare de conectare
Dacă (! $ link) (
ECHO "Eroare la conectarea la baza de date. Cod de eroare:". mysqli_connect_error ();
Ieșire;
}

Notă - Pretutindeni Utilizați Mysqli, nu MySQL !!!

index.php.

necesită_once "config.php";

// Executați cererea. Dacă este afișată eroarea
dacă ($ rezultat \u003d mysqli_query.($ Link, "Selectați numele, banii din Dolg Comandă de Bank Desc Limita 5") (

Echo "Cui trebuie să cobor:

";

// selectarea rezultatelor interogării
În timp ce ($ rând \u003d mysqli_fetch_assoc.(rezultatul $)) (
ECHO $ \u200b\u200bROW ["NAME"]. "Cu o datorie." $ Rând ["bani"]. "Rubles.
";
}

// eliberarea memoriei folosite
mysqli_free_result.(rezultatul $);

// Închideți conexiunea
mysqli_close.($ Link.);
}

După cum puteți vedea, unele momente s-au schimbat (alocate în italice).

3) Metoda orientată pe obiecte pentru conectarea la baza de date MySQL - utilizând metode și clase:

Contra: mai dificil și mai puțin susceptibil la erori.

Pro: Brevitate și comoditate pentru programatori cu experiență.

$ Conn \u003d Mysqli nou ($ db_hostname, $ db_username, $ db_password, $ db_database);
Dacă ($ Conn-\u003e Connect_ERRNO) (
Die ($ Conn-\u003e Connect_Error);
) O legătură (ecou "cu baza de date a fost stabilită cu succes";)

aici, în principiu, totul este intuitiv:

  • $ db_hostname este gazdă (cea mai mare parte localhost),
  • $ db_database - bD nume.;
  • $ Db_username și $ db_password - Nume de utilizator și parolă, respectiv!

Exemplu de conectare cu baza de date pe stil PHP OOP cu o probă din tabel

config.php.

// sociologie cu baza de date
$ mysqli \u003d noul mysqli ("localhost", "nume de utilizator", "parola", "nume-bază de date"); // aici intru direct datele dvs .: numele de utilizator, parola și numele bazei de date, primul câmp de obicei localhost

// ieșire eroare de conectare
dacă ($ mysqli-\u003e Connect_Error) (
("Eroare de conectare la baza de date: (" $ mysqli-\u003e Connect_errno. ")". Mysqli_connect_error);
}

Notă - Pretutindeni Utilizați Mysqli, nu MySQL !!! Și spre deosebire de metoda anterioară, săgețile apar "-\u003e", care arată că acesta este un stil OOP.

index.php.

necesită_once "config.php";

// Executați cererea. Dacă este afișată eroarea
dacă ($ rezultat \u003d $ mysqli-\u003e Interogare.("Selectați numele, banii din Dolg Comandă de Bank Desc Limita 5") (

Echo "Cui trebuie să cobor:

";

// selectarea rezultatelor interogării
În timp ce ($ rând \u003d $ rezultat-\u003e fetch_assoc.()) {
ECHO $ \u200b\u200bROW ["NAME"]. "Cu o datorie." $ Rând ["bani"]. "Rubles.
";
}

// eliberarea memoriei folosite
$rezultat-\u003e Închidere ();

// Închideți conexiunea
$mysqli-\u003e Închidere.();
}

O sarcină pentru dvs. - găsiți diferențe.

4) Comunicarea cu baza de date cu DOP:

Când este conectat la baza de date MySQL, se utilizează expresii preparate (prin metoda de pregătire) și ca rezultat al unei mari siguranțe și crește foarte mult viteza.

fișier de configurare. Din metoda anterioară! - la fel

index.php.

// Stilul DOP pentru comunicare cu MySQL
Dacă ($ stmt \u003d $ mysqli-\u003e Pregătiți ("Selectați Nume, Voney din Dolg Comandă de bani< ? LIMIT 5")) {

$ Stmt-\u003e bind_param ("i", $ summa);
$ Summa \u003d 100000;

// executarea executării
$ Stmt-\u003e execute ();

// anunțarea variabilelor pentru valorile recoltate
$ Stmt-\u003e bind_result ($ col1, $ col2);

Echo "Cui trebuie să cobor:

";

// selectarea rezultatelor interogării
În timp ce ($ stmt-\u003e pret ()) (
ECHO $ \u200b\u200bCOL1. "Cu o datorie." $ col2. "Rubles.
";
}

// eliberarea memoriei folosite
$ Stmt-\u003e close ();

// Închideți conexiunea
$ mysqli-\u003e close ();

După cum vedem, există mult mai dificil și necesar să învățăm DOP este un subiect separat.