Klasė, skirta MySQL duomenų bazėms valdyti naudojant „MySQLi“ ir „pHp“

Turinys
The „MySQLi“ plėtinys yra santykių duomenų bazės tvarkyklė, ji naudojama pHp programavimo kalba, kad būtų sukurta sąsaja su „MySQL“ duomenų bazėmis.
„MySQLi“ naudojimo pranašumai
Paruošti teiginiai: lengviau kurti užklausas, suteikia daug saugumo nuo SQL įpurškimo, naudojant šią funkciją:
 $ mysqli-> pasiruošti ();
Keli klausimai ar užklausos
Galimybė atlikti kelias užklausas ar užklausas ryšiu.
Pavyzdys
 $ sqla = "SELECT * iš klientų;" $ sqlb. = "PASIRINKITE*IŠ sąskaitų faktūrų ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb) 
Orientuotas į objektą
Ši „MySQLi“ funkcija leidžia kūrėjui naudoti objektus, kad pagerintų šaltinio kodo naudojimą, našumą ir matomumą.
„MySQLi Extension“ tvarkyklė naudojama PHP programavimo kalba, kad būtų sukurta sąsaja su „MySQL“ duomenų bazėmis. PHP programavimo kalbos kūrėjai rekomenduoja naudoti „MySQLi“, kai kalbama apie „MySQL“ serverio 4.1.3 ir naujesnes versijas.
Mes sukursime klasę, kurią naudosime iš pHp su metodais ir savybėmis manipuliuoti ar valdyti bet kurią duomenų bazę.
Klasė bus tokia:
 class dbmysqli {// deklaruoti kintamąjį ryšiui viešas $ connection; // Paskelbiame klasės viešosios funkcijos konstruktorių __construct ($ host, $ user, $ password, $ db) {} // funkcija sukurti lenteles public function create table ($ sql) {} // Išsaugoti naujus duomenis duomenų bazės duomenų viešųjų funkcijų intarpas ($ table, $ field data) {} // Ištrinti duomenis iš duomenų bazės viešosios funkcijos ištrinti ($ table, $ field data) {} viešosios funkcijos atnaujinimas ($ table, $ field set, $ field condition) {} / / function Paieška lentelės viešosios funkcijos paieškoje ($ table, $ fields) {}} 
„MySQLi“ ryšys ir klasė
Norėdami prisijungti prie „MySQLi“ serverio, turime iškviesti konstruktoriaus metodą ir atsiųsti keturis argumentus - pagrindinio kompiuterio pavadinimą, pvz., „Localhost“, vartotojo vardą, duomenų bazės slaptažodį ir duomenų bazės pavadinimą.
Konstruktoriuje pridedame ryšį prie serverio:
 viešoji funkcija __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); } 
Tada mes jį iškviesime taip:
 // Prisijungimas prie serverio ir duomenų bazės $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Mes apibrėžiame metodą, kaip dinamiškai kurti lenteles:
 // Funkcija, sukurianti lenteles viešoji funkcija createstable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Lentelė sukurta"; } else {echo "Nepavyko: lentelė nesukurta". $ this-> connection-> error; }} 
Tada mes jį iškviesime taip, sukursime SQL užklausą ir iškviesime funkciją creartabla ():
 $ sql = ”DROP TABLE IF EXISTS` klientai“; KURTI LENTELĘ, JEI NĖRA „klientų“ („customerid“ int (11) NOT NULL AUTO_INCREMENT, „name“ varchar (255) NOT NULL, PAGRINDINIS RAKTAS („customerid“)) “$ connectb -> creartabla ($ sql); 
Iš „pHpMyAdmin“ matome, kaip lentelė buvo sukurta vykdant php scenarijų.

Mes apibrėžiame duomenų įterpimo / išsaugojimo metodą
Toliau sukuriame metodus, vadinamus ABM arba CRUD, kurie bus atsakingi už duomenų valdymą lentelėse. Norėdami siųsti parametrus kiekvienam metodui, naudosime masyvą, kuriame masyvo indeksas bus lentelės laukas, o to indekso reikšmė - lentelės lauko duomenys. Kiekvienas indekso pavadinimas turi būti įtrauktas į kabutes ir vertė turi atitikti šias taisykles:
  • Eilutės reikšmėse turi būti vienos kabutės. Pavyzdys "name" => 'Maria'
  • Skaitmeninės reikšmės neturi turėti kabučių. Pavyzdys "kaina" => 10,50
  • Žodis NULL OR tuščias neturi turėti kabučių. Pavyzdys "kaina" => NULL
 // Sukuriame funkciją, kuri kaip parametrą ims masyvo lauką => duomenų viešosios funkcijos intarpą ($ table, $ field data) {// atskiriame duomenis, jei yra keli $ field = implode (",", array_keys ($ lauko duomenys)); $ i = 0; foreach ($ duomenų laukai kaip $ index => $ value) {$ data [$ i] = "'". $ value "" "; $ i ++; } $ data = implode (",", $ data); // Į kiekvieną lauką įterpiame reikšmes, jei ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Naujas klientas įterptas"; } else {echo "Klientas nebuvo įterptas nepavyko". $ this-> connection-> error; }} 
Mes sukuriame savo matricą naudodami duomenis, kurie gali būti gauti iš formos:
 // Duomenų matrica, skirta įterpti $ customers = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' ); 
Tada mes jį iškviesime taip, mes iškviečiame įterpimo funkciją („klientai“, $ klientai) ir pridėsime parametrus:
 $ conedb -> intarpas ("klientai", $ klientai);
Mes nustatome duomenų ištrynimo metodą
Norėdami atlikti ištrynimo operaciją, mes deklaruojame masyvą, kuriame nurodysime, kurią eilutę ar ID norime ištrinti.
 // funkcija ištrinti duomenis iš lentelės viešoji funkcija delete ($ table, $ datafields) {$ i = 0; foreach ($ duomenų laukai kaip $ index => $ value) {$ data [$ i] = "'". $ value "" "; $ i ++; } $ laukas ir duomenys = implode ("IR", $ duomenys); if ($ this-> connection-> query ("DELETE FROM $ $ WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Įrašas ištrintas"; } else {echo "Nepavyko, įrašo nepavyko ištrinti". $ this-> connection-> error;}} 
Mes sukuriame savo matricą su pasirinktais ištrinti duomenimis, kurie gali būti gauti iš formos
 // Duomenų matrica, skirta ištrinti $ klientams delete = array ("kliento ID" => 1, "kliento ID" => 50, "kliento ID" => 8, "kliento ID" => 104); 
Tada mes jį iškviesime taip, mes iškviečiame ištrynimo funkciją („klientai“, $ klientai ištrina) ir pridedame parametrus
 $ conectadb -> ištrinti („klientai“, $ klientai ištrina);
Mes nustatome duomenų atnaujinimo metodą
Norėdami atnaujinti eilutės, kurią turime keisti, duomenis, paskelbsime du asociatyvius masyvus: vienas bus skirtas keisti laukams, o kitas - sąlygai kur SQL užklausoje. Matricos taisyklės turi atitikti tą pačią sintaksę, kurią nuo pat pradžių apibrėžėme matricai.
Atsižvelgiant į „MySQL“ atnaujinimo sintaksę:
 ATNAUJINTI klientus SET name = 'newname' WHERE clientid.id = idvalue; // Sukuriame funkciją, kuri kaip parametrą ims masyvo lauką => duomenų viešąją funkciją Atnaujinti ($ table, $ setfields, $ conditionfields) {// atskiriame SET reikšmes, kad pakeistume $ i = 0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ duomenų rinkinys); $ i = 0; foreach ($ conditionfields as $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("IR", $ sąlyga); // Atnaujinti įrašus, jei ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record updated"; } else {echo "Nepavyko, įrašo nepavyko ištrinti". $ this-> connection-> error;}} 
Mes sukuriame savo masyvą naudodami SET duomenis, kurie bus atnaujinamų laukų ir naujų verčių, taip pat sukuriame WHERE sąlygos masyvą su atnaujinamų įrašų, kurie gali būti gauti iš formos, ID:
 // Duomenų matrica SET $ customersset = array ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Andželas “); $ customerswhere = masyvas ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10); 
Tada mes jį iškviesime taip, mes iškviečiame atnaujinimo funkciją („klientai“, $ customersset, $ customerswhere) ir pridėsime prie jos parametrus.
 $ dbconnect-> Atnaujinti ("klientai", $ customersset, $ customerswhere);
Visose užklausose klaidoms aptikti naudojame savąją „MySQLi“ funkciją $ mysqli-> klaida, kuris parodys klaidos pranešimą bet kuriai SQL užklausai ar „MySQLi“ funkcijai, kuri galėjo būti įvykdyta ir nepavyko, todėl galime žinoti, kodėl įvyko klaida.
Mes apibrėžiame duomenų paieškos metodą
Norėdami gauti duomenis iš lentelės, sukuriame užklausos metodą su dviem parametrais, vienas yra lentelės pavadinimas, o kitas - masyvas, kuriame yra stulpelių pavadinimas ir vertė, kurios reikia ieškoti.
Galime nurodyti rezultato matricos tipą, kurį reikia gauti. Galimos šio parametro vertės yra konstantos MYSQLI_ASSOC, MYSQLI_NUM.
Masyvo tipas MYSQLI_ASSOC
 Masyvas {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'} 
Masyvo tipas MYSQLI_NUM
 Masyvas {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} viešųjų funkcijų paieška ($ table, $ fields) {$ fields = implode (",", $ fields); $ result = $ this-> connection-> query ("SELECT $ laukai iš $ table"); return $ result-> fetch_all (MYSQLI_ASSOC); } 
Mes sukuriame savo matricą su paieškos duomenimis, kurie gali būti gauti iš formos:
 // Duomenų masyvas paieškai $ klientai search = array ("kliento ID", "vardas"); 
Tada mes jį iškviesime taip, mes iškviesime paieškos funkciją („klientai“, $ klientų paieška) ir pridėsime parametrus:
 $ connectdb -> paieška ($ table, $ customers search);
Ši funkcija grąžina a recorset kurį turėsime atlikti kaip masyvą, kad pamatytume kiekvieno lauko duomenis:Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave