Klasse til at administrere MySQL -databaser med MySQLi og pHp

Indholdsfortegnelse
Det MySQLi udvidelse er en relationsdatabasedriver, bruges den i programmeringssproget pHp til at tilvejebringe en grænseflade med MySQL -databaser.
Fordele ved at bruge MySQLi
Udarbejdede udsagn: det er lettere at oprette forespørgsler, det giver en masse sikkerhed mod SQL -indsprøjtning med funktionen:
 $ mysqli-> forberede ();
Flere forespørgsler eller forespørgsler
Mulighed for at udføre flere forespørgsler eller forespørgsler i en forbindelse.
Eksempel
 $ sqla = "SELECT * fra klienter;" $ sqlb. = "VÆLG*FRA fakturaer ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb) 
Objektorienteret
Denne funktion i MySQLi giver udvikleren mulighed for at bruge objekter til at forbedre brugen, ydeevnen og synligheden af ​​kildekoden.
MySQLi Extension -driveren bruges i PHP -programmeringssproget til at give en grænseflade til MySQL -databaser. Udviklerne af PHP -programmeringssprog anbefaler at bruge MySQLi, når det kommer til MySQL -serverversioner 4.1.3 og nyere.
Vi skal oprette en klasse, der skal bruges fra pHp med metoder og egenskaber til at manipulere eller administrere enhver database.
Klassen vil være følgende:
 klasse dbmysqli {// deklarere en variabel for forbindelsen offentlig $ forbindelse; // Vi erklærer konstruktøren af ​​klassens offentlige funktion __construct ($ host, $ user, $ password, $ db) {} // funktion til at oprette tabeller public function create table ($ sql) {} // Gem nye data i database data offentlig funktionsindsats ($ table, $ field data) {} // Slet data fra databasen public function delete ($ table, $ field data) {} public function Update ($ table, $ field set, $ field condition) {} / / funktion Søg i en tabel med offentlig funktionssøgning ($ tabel, $ felter) {}} 
MySQLi Forbindelse og klasse
For at forbinde MySQLi -serveren skal vi påberåbe konstruktormetoden og sende fire argumenter som værtsnavnet, f.eks. Localhost, brugernavn, databaseadgangskode og databasens navn.
I konstruktøren tilføjer vi forbindelsen til serveren:
 offentlig funktion __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); } 
Så vil vi påberåbe os det sådan:
 // Tilslutning til serveren og databasen $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Vi definerer metoden til at oprette tabeller dynamisk:
 // Funktion, der opretter tabeller, offentlig funktion, der kan oprettes ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "En tabel er blevet oprettet"; } ellers {echo "mislykkedes: tabellen blev ikke oprettet". $ this-> connection-> fejl; }} 
Så vil vi påberåbe det sådan, oprette sql -forespørgslen og påkalde funktionen creartabla ():
 $ sql = ”DROP TABLE IF EXISTS‘ clients ’; Opret tabel, hvis den ikke findes 'kunder' ('customerid' int (11) IKKE NULL AUTO_INCREMENT, 'name' varchar (255) NOT NULL, PRIMARY Nøgle ('customerid')) "$ connectb -> creartabla ($ sql); 
Vi kan se fra pHpMyAdmin, hvordan tabellen er blevet oprettet ved udførelsen af php script.

Vi definerer metoden til at indsætte / gemme data
Dernæst opretter vi metoderne kaldet ABM eller CRUD, som skal stå for administrationen af ​​dataene i tabellerne. For at sende parametre til hver metode vil vi bruge en matrix, hvor matrixets indeks vil være feltet i tabellen, og værdien af ​​dette indeks vil være dataene for tabellens felt. Hvert indeksnavn skal være omsluttet af dobbelte anførselstegn, og værdien skal opfylde følgende regler:
  • Strengværdier skal have enkelte anførselstegn. Eksempel "name" => 'Maria'
  • Numeriske værdier må ikke have anførselstegn. Eksempel "pris" => 10,50
  • Ordet NULL ELLER tomt må ikke have anførselstegn. Eksempel "pris" => NULL
 // Vi opretter den funktion, der vil tage parameterfeltet array => data public function insert ($ table, $ field data) {// som adskiller dataene, hvis der er flere $ field = implode (",", array_keys ($ feltdata)); $ i = 0; foreach ($ datafelter som $ index => $ værdi) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Vi indsætter værdierne i hvert felt, hvis ($ this-> connection-> forespørgsel ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Ny klient indsat"; } else {echo "Klienten er ikke indsat mislykkedes". $ this-> connection-> fejl; }} 
Vi opretter vores matrix med de data, der kan komme fra en form:
 // Datamatrix til indsætning af $ kunder = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' ); 
Så vil vi påberåbe det sådan, vi påberåber indsættelsesfunktionen ("kunder", $ kunder) og tilføjer parametrene:
 $ conedb -> insert ("klienter", $ klienter);
Vi definerer metoden til sletning af data
For at udføre sletteoperationen erklærer vi et array, hvor vi angiver hvilken række eller id, vi vil slette.
 // funktion til at slette data fra en tabel offentlig funktion slet ($ tabel, $ datafelter) {$ i = 0; foreach ($ datafelter som $ index => $ værdi) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ felt og data = implode ("AND", $ data); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record slettet"; } ellers {echo "Mislykkedes, posten kunne ikke slettes". $ this-> connection-> error;}} 
Vi opretter vores matrix med de valgte data til sletning, der kan komme fra en formular
 // Datamatrix til sletning af $ kunder delete = array ("kunde -id" => 1, "kunde -id" => 50, "kunde -id" => 8, "kunde -id" => 104); 
Så vil vi påberåbe det sådan, vi påberåber os slettefunktionen ("kunder", $ kunder sletter) og tilføjer parametrene
 $ conectadb -> delete ("klienter", $ klienter sletter);
Vi definerer metoden til opdatering af data
For at opdatere dataene i rækken, som vi skal ændre, erklærer vi to associerede arrays, den ene er for felterne at ændre og den anden for betingelsen hvor i SQL -forespørgslen. Matrixreglerne skal overholde den samme syntaks, som vi definerede for matrixen fra begyndelsen.
I betragtning af MySQL -opdateringssyntaksen:
 UPDATE Clients SET name = 'newname' WHERE clientid.id = idvalue; // Vi opretter den funktion, der vil tage parameterfeltet arrayfelt => data public function Update ($ tabel, $ setfields, $ conditionfields) {// vi adskiller SET -værdierne for at ændre $ i = 0; foreach ($ camposset som $ index => $ data) {$ datasæt [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields som $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("AND", $ condition); // Opdater poster hvis ($ this-> forbindelse-> forespørgsel ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record updated"; } ellers {echo "Mislykkedes, posten kunne ikke slettes". $ this-> connection-> error;}} 
Vi opretter vores array med de SET -data, der vil være felterne til opdatering og nye værdier, vi opretter også et array til WHERE -tilstanden med id'et for de poster, der skal opdateres, der kan komme fra en formular:
 // Datamatrix SET $ kundesæt = 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); 
Derefter påberåber vi det sådan, vi påkalder opdateringsfunktionen ("kunder", $ kundesæt, $ kunder hvor) og tilføjer parametrene til det.
 $ dbconnect-> Opdatering ("klienter", $ klientsæt, $ klienter hvor);
I alle forespørgsler bruger vi den indbyggede MySQLi -funktion til at registrere fejl $ mysqli-> fejl, som viser en fejlmeddelelse for enhver SQL -forespørgsel eller MySQLi -funktion, der muligvis er blevet udført og mislykkedes, så vi kan vide, hvorfor fejlen opstod.
Vi definerer metoden til Søg data
For at hente data fra tabellen opretter vi en forespørgselsmetode med to parametre, den ene er bordets navn og den anden er en matrix, der indeholder navnet på kolonnerne og den værdi, der skal søges i.
Vi kan angive typen af ​​resultatmatrix, der skal opnås. De mulige værdier for denne parameter er konstanterne MYSQLI_ASSOC, MYSQLI_NUM.
Array type MYSQLI_ASSOC
 Array {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'} 
Array type MYSQLI_NUM
 Array {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} offentlig funktionssøgning ($ tabel, $ felter) {$ fields = implode (",", $ fields); $ resultat = $ denne-> forbindelse-> forespørgsel ("VÆLG $ felter FRA $ tabel"); return $ result-> fetch_all (MYSQLI_ASSOC); } 
Vi opretter vores matrix med data til søgning, der kan komme fra en form:
 // Array af data til søgning $ clients search = array ("klient -id", "navn"); 
Så vil vi påberåbe det sådan, vi påberåber søgefunktionen ("kunder", $ kunder søger) og tilføjer parametrene:
 $ connectdb -> søg ($ tabel, $ klientsøgning);
Denne funktion returnerer a genoptages som vi bliver nødt til at gå igennem som en matrix for at se dataene for hvert felt:Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave