Klasse for å administrere MySQL -databaser med MySQLi og pHp

Innholdsfortegnelse
De MySQLi -utvidelse er en relasjonsdatabasedriver, brukes den i programmeringsspråket pHp for å gi et grensesnitt med MySQL -databaser.
Fordeler med å bruke MySQLi
Utarbeidede uttalelser: det er lettere å lage spørringer, det gir mye sikkerhet mot SQL -injeksjon, med funksjonen:
 $ mysqli-> prepar ();
Flere henvendelser eller forespørsler
Mulighet for å utføre flere spørsmål eller forespørsler i en forbindelse.
Eksempel
 $ sqla = "SELECT * fra klienter;" $ sqlb. = "VELG*FRA fakturaer ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb) 
Objekt orientert
Denne funksjonen i MySQLi lar utvikleren bruke objekter for å forbedre bruk, ytelse og synlighet av kildekoden.
MySQLi Extension -driveren brukes i programmeringsspråket PHP for å gi et grensesnitt til MySQL -databaser. Utviklerne av PHP -programmeringsspråket anbefaler å bruke MySQLi når det gjelder MySQL -serverversjoner 4.1.3 og nyere.
Vi skal lage en klasse som skal brukes fra pHp med metoder og egenskaper for å manipulere eller administrere hvilken som helst database.
Klassen vil være følgende:
 klasse dbmysqli {// erklære en variabel for tilkobling offentlig $ tilkobling; // Vi erklærer konstruktøren for klassens offentlige funksjon __construct ($ host, $ user, $ password, $ db) {} // funksjon for å lage tabeller offentlig funksjon opprette tabell ($ sql) {} // Lagre nye data i database data offentlig funksjonsinnsats ($ tabell, $ field data) {} // Slett data fra databasen public function delete ($ table, $ field data) {} public function Update ($ table, $ field set, $ field condition) {} / / function Search in a table public function search ($ table, $ fields) {}} 
MySQLi -tilkobling og klasse
For å koble til MySQLi -serveren må vi påkalle konstruktormetoden og sende fire argumenter som vertsnavnet, for eksempel localhost, brukernavn, databasepassord og databasenavn.
I konstruktøren legger vi til tilkoblingen til serveren:
 offentlig funksjon __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); } 
Da vil vi påberope det slik:
 // Koble til serveren og databasen $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb"); 
Vi definerer metoden for å lage tabeller dynamisk:
 // Funksjon som oppretter tabeller offentlig funksjon som kan skapes ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "En tabell er opprettet"; } annet {echo "Mislyktes: tabellen ble ikke opprettet". $ this-> connection-> error; }} 
Da vil vi påberope det slik, lage sql -spørringen og påkalle funksjonen creartabla ():
 $ sql = "DROP TABLE IF EXISTS` clients`; LAG TABELL HVIS IKKE FINNES `kunder` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) "$ connectb -> creartabla ($ sql); 
Vi kan se fra pHpMyAdmin hvordan tabellen er opprettet når du utfører php -skript.

Vi definerer metoden for å sette inn / lagre data
Deretter lager vi metodene kalt ABM eller CRUD, som skal ha ansvaret for administrering av dataene i tabellene. For å sende parametere til hver metode vil vi bruke en matrise der indeksen til matrisen vil være feltet i tabellen og verdien av den indeksen vil være dataene for feltet i tabellen. Hvert indeksnavn må være omsluttet av doble anførselstegn, og verdien må oppfylle følgende regler:
  • Strengverdier må ha enkelt anførselstegn. Eksempel "name" => 'Maria'
  • Numeriske verdier må ikke ha anførselstegn. Eksempel "pris" => 10,50
  • Ordet NULL ELLER tomt må ikke ha anførselstegn. Eksempel "pris" => NULL
 // Vi oppretter funksjonen som vil ta parameterfeltet array => data public function insert ($ table, $ field data) {// vi skiller dataene hvis det er flere $ field = implode (",", array_keys ($ feltdata)); $ i = 0; foreach ($ datafelt som $ index => $ verdi) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Vi setter inn verdiene i hvert felt hvis ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Ny klient satt inn"; } annet {echo "Klienten er ikke satt inn mislyktes". $ this-> connection-> error; }} 
Vi lager matrisen vår med dataene som kan komme fra et skjema:
 // Datamatrise for å sette inn $ customers = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' ); 
Så vil vi påberope det slik, vi påkaller innsettingsfunksjonen ("kunder", $ kunder) og legger til parametrene:
 $ conedb -> insert ("klienter", $ klienter);
Vi definerer metoden for å slette data
For å utføre sletteoperasjonen, erklærer vi en matrise der vi vil indikere hvilken rad eller ID vi vil slette.
 // funksjon for å slette data fra en tabell offentlig funksjonssletting ($ tabell, $ datafelt) {$ i = 0; foreach ($ datafelt som $ index => $ verdi) {$ 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 deleted"; } annet {echo "Mislyktes, posten kunne ikke slettes". $ this-> connection-> error;}} 
Vi lager matrisen vår med de valgte dataene som skal slettes som kan komme fra et skjema
 // Datamatrise for å slette $ kunder delete = array ("kunde -ID" => 1, "kunde -ID" => 50, "kunde -ID" => 8, "kunde -ID" => 104); 
Da vil vi påberope det slik, vi påkaller slettefunksjonen ("kunder", $ kunder sletter) og legger til parametrene
 $ conectadb -> delete ("klienter", $ klienter sletter);
Vi definerer metoden for å oppdatere data
For å oppdatere dataene i raden som vi trenger å endre, vil vi deklarere to assosiative matriser, den ene er for feltene å endre og den andre for tilstanden hvor i SQL -spørringen. Matrisereglene må følge den samme syntaksen som vi definerte for matrisen fra begynnelsen.
Vurderer MySQL -oppdateringssyntaksen:
 UPDATE Clients SET name = 'newname' WHERE clientid.id = idvalue; // Vi lager funksjonen som tar parameteren matrisefeltet => data public function Update ($ tabell, $ setfields, $ conditionfields) {// vi skiller SET -verdiene for å endre $ i = 0; foreach ($ camposset som $ index => $ data) {$ datasett [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields som $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("AND", $ condition); // Oppdater poster hvis ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record updated"; } annet {echo "Mislyktes, posten kunne ikke slettes". $ this-> connection-> error;}} 
Vi lager matrisen vår med SET -dataene som vil være feltene som skal oppdateres og nye verdier, vi lager også en matrise for WHERE -tilstanden med ID -en til postene som skal oppdateres som kan komme fra et skjema:
 // Datamatrise SET $ kundesett = 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); 
Da vil vi påberope det slik, vi påkaller oppdateringsfunksjonen ("kunder", $ kundesett, $ kunder hvor) og legger til parametrene til den.
 $ dbconnect-> Oppdatering ("klienter", $ klientsett, $ klienter hvor);
I alle forespørslene bruker vi den opprinnelige MySQLi -funksjonen til å oppdage feil $ mysqli-> feil, som viser en feilmelding for enhver SQL -spørring eller MySQLi -funksjon som kan ha blitt utført og mislyktes, slik at vi kan vite hvorfor feilen oppstod.
Vi definerer metoden til Søk i data
For å hente dataene fra tabellen lager vi en spørringsmetode med to parametere, den ene er tabellens navn og den andre er en matrise som inneholder navnet på kolonnene og verdien som skal søkes.
Vi kan angi hvilken type resultatmatrise som skal oppnås. De mulige verdiene for denne parameteren er konstantene 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 funksjonssøk ($ tabell, $ felt) {$ fields = implode (",", $ fields); $ result = $ this-> connection-> query ("SELECT $ fields FROM $ table"); return $ result-> fetch_all (MYSQLI_ASSOC); } 
Vi lager matrisen vår med dataene for å søke som kan komme fra et skjema:
 // Array av data for å søke i $ clients search = array ("klient -ID", "navn"); 
Så vil vi påberope det slik, vi påkaller søkefunksjonen ("kunder", $ kunder søker) og legger til parametrene:
 $ connectdb -> søk ($ tabell, $ klienters søk);
Denne funksjonen returnerer a recoret som vi må gå gjennom som en matrise for å se dataene i hvert felt:Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave