Cuprins
Extensia MySQLi este un driver de baze de date relaționale, este utilizat în limbajul de programare pHp pentru a furniza o interfață cu bazele de date MySQL.Avantajele utilizării MySQLi
Declarații pregătite: este mai ușor să creați interogări, oferă multă securitate împotriva injecției SQL, cu funcția:
$ mysqli-> prepare ();Mai multe întrebări sau întrebări
Posibilitatea executării mai multor interogări sau interogări într-o conexiune.
Exemplu
$ sqla = "SELECT * de la clienți;" $ sqlb. = "SELECT * FROM invoices ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb)Orientat pe obiecte
Această caracteristică a MySQLi permite dezvoltatorului să utilizeze obiecte pentru a îmbunătăți utilizarea, performanța și vizibilitatea codului sursă.
Driverul extensiei MySQLi este utilizat în limbajul de programare PHP pentru a oferi o interfață bazelor de date MySQL. Dezvoltatorii limbajului de programare PHP recomandă utilizarea MySQLi când vine vorba de versiunile de server MySQL 4.1.3 și ulterioare.
Vom crea o clasă de utilizat din pHp cu metode și proprietăți pentru a manipula sau gestiona orice bază de date.
Clasa va fi următoarea:
clasa dbmysqli {// declară o variabilă pentru conexiune publică conexiune $; // Declarăm constructorul clasei funcției publice __construct ($ gazdă, $ utilizator, $ parolă, $ db) {} // funcție pentru a crea tabele funcție publică crea tabel ($ sql) {} // Salvați datele noi în inserarea funcției publice a datelor bazei de date ($ tabel, $ date câmp) {} // Ștergeți datele din baza de date funcție publică șterge ($ tabel, $ date câmp) {} Actualizare funcție publică ($ tabel, $ set câmp, $ condiție câmp) {} / / funcție Căutare într-un tabel căutare funcție publică ($ tabel, $ câmpuri) {}}Conexiune și clasă MySQLi
Pentru a conecta serverul MySQLi trebuie să invocăm metoda constructorului și să trimitem patru argumente pentru numele gazdei, cum ar fi localhost, numele de utilizator, parola bazei de date și numele bazei de date.
În constructor adăugăm conexiunea la server:
funcție publică __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Apoi îl vom invoca astfel:
// Conectarea la server și la baza de date $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Definim metoda de creare dinamică a tabelelor:
// Funcție care creează tabele funcție publică createstable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "A fost creat un tabel"; } else {echo "Eșuat: tabelul nu a fost creat". $ this-> connection-> error; }}Apoi îl vom invoca astfel, vom crea interogarea sql și vom invoca funcția creartabla ():
$ sql = ”TABEL DE DROP DACĂ EXISTĂ„ clienți ”; CREAȚI TABEL DACĂ NU EXISTEZĂ „clienți” („customerid” int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, CHEIE PRIMARĂ (` customerid`)) ”$ connectb -> creartabla ($ sql);Putem vedea de la pHpMyAdmin cum a fost creat tabelul la executarea script php.
Definim metoda de inserare / salvare a datelor
Apoi creăm metodele numite ABM sau CRUD, care vor fi însărcinate cu gestionarea datelor din tabele. Pentru a trimite parametri către fiecare metodă vom folosi o matrice în care indicele matricei va fi câmpul tabelului și valoarea acelui indice va fi datele pentru câmpul tabelului. Fiecare nume de index trebuie să fie inclus între ghilimele duble și valoarea trebuie să respecte următoarele reguli:
- Valorile șirului trebuie să aibă ghilimele unice. Exemplu "nume" => 'Maria'
- Valorile numerice nu trebuie să aibă ghilimele. Exemplu „preț” => 10,50
- Cuvântul NUL SAU gol nu trebuie să aibă ghilimele. Exemplu „preț” => NUL
// Creăm funcția care va lua ca parametru câmpul array => inserare funcție publică date ($ tabel, $ date câmp) {// separăm datele dacă există mai mulți $ field = implode (",", array_keys ($ date câmp)); $ i = 0; foreach ($ câmpuri de date ca $ index => $ valoare) {$ data [$ i] = "'". $ valoare. "'"; $ i ++; } $ data = implode (",", $ data); // Introducem valorile în fiecare câmp dacă ($ this-> connection-> interogare ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Client nou inserat"; } else {echo "Clientul nu a fost inserat eșuat". $ this-> connection-> error; }}Ne creăm matricea cu datele care pot proveni dintr-un formular:
// Matrice de date pentru a insera $ clienți = matrice ("nume" => 'Carlos Moira', „nume” => 'Jose Triana', „nume” => 'Julia Ordoñez', „nume” => 'Carla Angelez' );Apoi o vom invoca astfel, invocăm funcția insert („clienți”, $ clienți) și adăugăm parametrii:
$ conedb -> insert ("clienți", $ clienți);Definim metoda de ștergere a datelor
Pentru a efectua operațiunea de ștergere, declarăm o matrice în care vom indica ce rând sau id dorim să ștergem.
// funcție pentru ștergerea datelor dintr-un tabel funcție publică ștergere ($ tabel, $ câmpuri de date) {$ i = 0; foreach ($ câmpuri de date ca $ index => $ valoare) {$ data [$ i] = "'". $ valoare. "'"; $ i ++; } $ câmp și date = implode ("ȘI", $ date); if ($ this-> connection-> interogare ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Înregistrare ștearsă"; } else {echo "Eșuat, înregistrarea nu a putut fi ștearsă”. $ this-> connection-> error;}}Ne creăm matricea cu datele selectate pentru ștergere care pot proveni dintr-un formular
// Matrice de date pentru a șterge $ clienți șterge = matrice („client id” => 1, „client id” => 50, „client id” => 8, „client id” => 104);Apoi îl vom invoca astfel, invocăm funcția de ștergere („clienți”, $ clienții șterg) și adăugăm parametrii
$ conectadb -> șterge („clienți”, șterge $ clienți);Definim metoda de actualizare a datelor
Pentru a actualiza datele rândului pe care trebuie să le modificăm, vom declara două matrice asociative, una va fi pentru câmpurile de modificat și cealaltă pentru condiție Unde în interogarea SQL. Regulile matricei trebuie să adere la aceeași sintaxă pe care am definit-o pentru matrice de la început.
Având în vedere sintaxa actualizării MySQL:
ACTUALIZARE Clienți SET nume = 'nume nou' UNDE clientid.id = idvalue; // Creăm funcția care va lua ca parametru câmpul matricei => funcție publică date Actualizare ($ tabel, $ setfields, $ conditionfields) {// separăm valorile SET pentru a modifica $ i = 0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields as $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("ȘI", $ condiție); // Actualizați înregistrările if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record actualizat"; } else {echo "Eșuat, înregistrarea nu a putut fi ștearsă”. $ this-> connection-> error;}}Ne creăm matricea cu datele SET care vor fi câmpurile de actualizat și noi valori, creăm și o matrice pentru condiția WHERE cu id-ul înregistrărilor de actualizat care poate proveni dintr-un formular:
// Matrice de date SET $ customersset = array ("name" => 'Carlos Juan Dolfo', „name” => 'Pedro Dorien Triana', „name” => 'Enrique Ordoñez', „name” => 'Carla Dolores Angeles '); $ customerswhere = array ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10);Apoi o vom invoca astfel, invocăm funcția Actualizare („clienți”, $ customersset, $ customerswhere) și îi adăugăm parametrii.
$ dbconnect-> Actualizare („clienți”, $ clientsset, $ clientswhere);În toate interogările folosim funcția nativă MySQLi pentru a detecta erorile $ mysqli-> eroare, care va afișa un mesaj de eroare pentru orice interogare SQL sau funcție MySQLi care ar fi putut fi executată și eșuată, astfel încât să putem ști de ce a apărut eroarea.
Definim metoda de căutare a datelor
Pentru a obține datele din tabel, creăm o metodă de interogare cu doi parametri, unul este numele tabelului și celălalt este un tablou care conține numele coloanelor și valoarea de căutat.
Putem indica tipul de matrice de rezultat de obținut. Valorile posibile pentru acest parametru sunt constantele MYSQLI_ASSOC, MYSQLI_NUM.
Tip matrice MYSQLI_ASSOC
Array {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'}Tip matrice MYSQLI_NUM
Array {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} căutare funcție publică ($ tabel, $ câmpuri) {$ câmpuri = implodează (",", $ câmpuri); $ result = $ this-> connection-> interogare ("SELECT $ câmpuri DIN $ tabel"); returnează $ result-> fetch_all (MYSQLI_ASSOC); }Ne creăm matricea cu datele de căutare care pot proveni dintr-un formular:
// Matrice de date pentru a căuta $ clienți căutare = matrice ("client id", ”nume”);Apoi îl vom invoca astfel, invocăm funcția de căutare („clienți”, căutare $ clienți) și adăugăm parametrii:
$ connectdb -> căutare ($ tabel, $ clienți căutare);Această funcție returnează a recorset că va trebui să trecem ca o matrice pentru a vedea datele fiecărui câmp:V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv