Cred că e timpul pentru a crește experiența dumneavoastră, și du-te atunci când se lucrează cu o bază de date funcții mysql_ la DOP. Această bibliotecă este un puternic și rapid la PHP. Unul dintre avantajele sale - lucrul cu mai multe baze de date (MS SQL MySQL PostgreSQL Oracle, și altele ....). Este, de asemenea, o trăsătură distinctivă a acestei biblioteci sunt declarații pregătite, așa-numitele declarații pregătite, care ar trebui să accelereze lucrul cu baza de date, și cel mai important a face schimbul de date în condiții de siguranță și să uitați despre vulnerabilități, cum ar fi sql-enjection. În plus, există și alte caracteristici foarte utile. În acest articol, am încercat să colecteze exemple utilizate în mod frecvent de lucrări în care puteți înțelege imediat activitatea DOP.
În PHP, există trei extensii pentru a lucra cu baza de date MySQL: MySQL, mysqli și DOP. PHP PDO (PHP Data Objects) incluse în PHP 5.1 și mai sus. După cum am înțeles, în acest moment, funcții pentru lucrul cu baza de date mysql_ nu este recomandat pentru utilizare ca php_mysql de dezvoltare a oprit pentru a sprijini MySQL funcțional 4.1.3. și, de asemenea, nu acceptă tranzacții, subiect și obiect de interfață exploatabil prin substituirea valorilor în interogare. După mysql_ a apărut extensia mysqli (MySQL îmbunătățită în versiunea 5), care susține noile caracteristici ale MySQL și utilizează atât sintaxa OPP și programarea procedurală. Toate aceste biblioteci folosesc standardul biblioteca client MySQL (libmysql). În aceeași notă, să ne uităm la exemplele vii ale modului de lucru cu MySQL, folosind cea mai recentă extindere - DOP.
DOP Baza de date de conectare
// compuși exemplu cu DOP folosind MySQL
$ Db = new DOP ( 'mysql: host = localhost; dbname = testul'.. $ Utilizator $ pass);
Odată ce se stabilește o conexiune de succes la un server de baze de date specifice, vă va fi returnat la DOP obiect. Acest obiect vă permite să efectuați o varietate de baze de date sarcini.
Dacă există erori de conectare, funcționează mecanismul de excepție - PDOException. Unul ar trebui să înfășurați întotdeauna operațiunile DOP în blocul try / catch. Puteți prinde excepție, în cazul în care doriți să se ocupe de erori, sau o puteți lăsa la handler excepție la nivel mondial (excepție), pe care le-ați creat cu ajutorul set_exception_handler (). DOP are o funcție specială de eroare: errorCode () - returnează un număr de eroare, errorInfo () - returnează un tablou cu numărul și descrierea erorii. Acestea sunt necesare, deoarece modul implicit de funcționare cu erori ar trebui să ERRMODE_SILENT. În acest caz, pentru a vedea aceste erori au cauza lor:
echo $ Conn -> errorCode ();
echo $ Conn -> errorInfo ();
Pentru a face acest lucru, în modul de dezvoltare a mai ușor pentru a seta doar modul de funcționare dorit cu erori: ATTR_ERRMODE și ERRMODE_EXCEPTION. Puteți înregistra, de asemenea, activitatea de codificare cu baza de date. Ca rezultat, vom obține un astfel de cod de conectare:
$ Db = new DOP ( "mysql: host = $ gazdă; dbname = $ dbname" utilizator $ $ parola ..);
$ Db -> setAttribute (DOP :: ATTR_ERRMODE, DOP :: ERRMODE_EXCEPTION);
$ Db -> exec ( "set nume utf8");
de captură (PDOException $ e)
echo $ e -> getMessage ();
După conectarea cu succes la baza de date, DOP clasa exemplu este returnat la script-ul. $ Db conține un mâner de bază de date. Conexiunea rămâne activă pe tot parcursul vieții obiect DOP. Pentru a închide conexiunea, aveți nevoie pentru a distruge un obiect cu o garanție că toate celelalte referiri la acesta va fi eliminat. Acest lucru se poate face prin atribuirea unei variabile, care include obiectul, valoarea NULL. Dacă nu face acest lucru în mod explicit, PHP va închide automat conexiunea după finalizarea scenariului.
Multe aplicații web vor beneficia de a face conexiuni persistente la serverele de baze de date. conexiuni persistente nu sunt închise la sfârșitul script-ul, și cache și reutilizat atunci când un alt script cere o conexiune cu aceleași date. conexiune persistentă reduce resursele pentru a crea o nouă conexiune de fiecare dată când un script are nevoie pentru a accesa baza de date, ceea ce duce la aplicații web mai rapid.
$ Dbh = new DOP ( 'mysql: host = localhost; dbname = test de'. $ Utilizator $ treci matrice (..
DOP :: ATTR_PERSISTENT => true
Acum că ați văzut cum se deschide și închide conexiunea, să ne uităm la alte exemple de lucru cu DOP. În acest caz, am de gând să-ți arăt cum să facă cereri către o bază de date specifice. Cereri pot fi făcute 3 funcții: exec (), interogare () și pregătește + executa.
În primul rând - Exec va reveni doar numărul de rânduri afectate sau fals eroare și este utilizat în cazul în care nu există date de returnare, cum ar fi atunci când eliminați: