Innehållsförteckning
De MySQLi -tillägg är en relationsdatabasdrivrutin, används den i programmeringsspråket pHp för att tillhandahålla ett gränssnitt med MySQL -databaser.Fördelar med att använda MySQLi
Förberedda uttalanden: det är lättare att skapa frågor, det erbjuder mycket säkerhet mot SQL -injektion, med funktionen:
$ mysqli-> preparera ();Flera förfrågningar eller frågor
Möjlighet att köra flera frågor eller frågor i en anslutning.
Exempel
$ sqla = "SELECT * från klienter;" $ sqlb. = "VÄLJ*FRÅN fakturor ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb)Objektorienterad
Denna funktion i MySQLi gör att utvecklaren kan använda objekt för att förbättra användningen, prestandan och synligheten av källkoden.
MySQLi Extension -drivrutinen används i PHP -programmeringsspråket för att tillhandahålla ett gränssnitt till MySQL -databaser. Utvecklarna av PHP -programmeringsspråket rekommenderar att du använder MySQLi när det gäller MySQL -serverversioner 4.1.3 och senare.
Vi ska skapa en klass att använda från pHp med metoder och egenskaper för att manipulera eller hantera vilken databas som helst.
Klassen kommer att vara följande:
klass dbmysqli {// deklarera en variabel för anslutning offentlig $ anslutning; // Vi deklarerar konstruktören för klassens offentliga funktion __construct ($ host, $ user, $ password, $ db) {} // funktion för att skapa tabeller public function create table ($ sql) {} // Spara ny data i databasdata offentlig funktionsinsats ($ tabell, $ fältdata) {} // Radera data från databasens offentliga funktionsradering ($ tabell, $ fältdata) {} public function update ($ table, $ field set, $ field condition) {} / / funktion Sök i en tabell offentlig funktionssökning ($ tabell, $ fält) {}}MySQLi -anslutning och klass
För att ansluta MySQLi -servern måste vi anropa konstruktormetoden och skicka fyra argument är värdnamnet som localhost, användarnamn, databaslösenord och databasnamn.
I konstruktören lägger vi till anslutningen till servern:
public function __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Då åberopar vi det så här:
// Ansluter till servern och databasen $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Vi definierar metoden för att skapa tabeller dynamiskt:
// Funktion som skapar tabeller offentlig funktion skapbar ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "En tabell har skapats"; } annars {echo "Misslyckades: tabell skapades inte". $ this-> connection-> error; }}Då kommer vi att åberopa det så här, skapa sql -frågan och åberopa funktionen creartabla ():
$ sql = ”DROP TABLE IF EXISTS‘ clients ’; SKAPA TABELL OM DET INTE FINNS `kunder` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) "$ connectb -> creartabla ($ sql);Vi kan se från pHpMyAdmin hur tabellen har skapats vid körning av php -skript.
Vi definierar metoden för att infoga / spara data
Därefter skapar vi metoderna som kallas ABM eller CRUD, som kommer att ansvara för hanteringen av data i tabellerna. För att skicka parametrar till varje metod kommer vi att använda en array där indexet för arrayen kommer att vara tabellens fält och värdet för det indexet kommer att vara data för tabellens fält. Varje indexnamn måste ingå i dubbla citattecken och värdet måste uppfylla följande regler:
- Strängvärden måste ha enstaka citattecken. Exempel "name" => 'Maria'
- Numeriska värden får inte ha citattecken. Exempel "pris" => 10,50
- Ordet NULL ELLER tomt får inte ha citattecken. Exempel "pris" => NULL
// Vi skapar den funktion som kommer att ta som en parameter arrayfältet => data public function insert ($ table, $ field data) {// vi separerar data om det finns flera $ field = implode (",", array_keys ($ fältdata)); $ i = 0; foreach ($ datafält som $ index => $ värde) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ data = implode (",", $ data); // Vi sätter in värdena i varje fält om ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Ny klient infogad"; } annat {echo "Klienten har inte infogats misslyckades". $ this-> connection-> error; }}Vi skapar vår matris med data som kan komma från ett formulär:
// Datamatris för att infoga $ kunder = array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez' );Sedan kommer vi att åberopa det så här, vi åberopar infogningsfunktionen ("kunder", $ kunder) och lägger till parametrarna:
$ conedb -> insert ("klienter", $ klienter);Vi definierar metoden för att radera data
För att utföra raderingsoperationen deklarerar vi en array där vi anger vilken rad eller id vi vill radera.
// funktion för att radera data från en tabell public function delete ($ tabell, $ datafält) {$ i = 0; foreach ($ datafält som $ index => $ värde) {$ data [$ i] = "'". $ value. "'"; $ i ++; } $ fält och data = implode ("AND", $ data); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record deleted"; } annars {echo "Misslyckades, posten kunde inte raderas". $ this-> connection-> error;}}Vi skapar vår matris med de valda uppgif.webpterna att radera som kan komma från ett formulär
// Datamatris för att ta bort $ kunder delete = array ("kund -id" => 1, "kund -id" => 50, "kund -id" => 8, "kund -id" => 104);Sedan kommer vi att åberopa det så här, vi åberopar borttagningsfunktionen ("kunder", $ kunder tar bort) och lägger till parametrarna
$ conectadb -> delete ("klienter", $ klienter tar bort);Vi definierar metoden för att uppdatera data
För att uppdatera data för raden som vi behöver ändra, kommer vi att deklarera två associerade matriser, en kommer att vara för fälten att ändra och den andra för villkoret var i SQL -frågan. Matrisreglerna måste följa samma syntax som vi definierade för matrisen från början.
Med tanke på MySQL -uppdateringssyntaxen:
UPDATE Clients SET name = 'newname' WHERE clientid.id = idvalue; // Vi skapar den funktion som tar parameterfältet arrayfält => data public function Update ($ tabell, $ setfields, $ conditionfields) {// vi separerar SET -värdena för att ändra $ i = 0; foreach ($ camposset som $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ i ++; } $ queryset = implode (",", $ datoset); $ i = 0; foreach ($ conditionfields som $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ i ++; } $ querycondition = implode ("AND", $ condition); // Uppdatera poster om ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record updated"; } annars {echo "Misslyckades, posten kunde inte raderas". $ this-> connection-> error;}}Vi skapar vår array med SET -data som kommer att vara fälten att uppdatera och nya värden, vi skapar också en array för WHERE -villkoret med id: n för de poster som ska uppdateras som kan komma från ett formulär:
// Datamatris SET $ kunduppsättning = 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);Sedan kommer vi att åberopa det så här, vi åberopar uppdateringsfunktionen ("kunder", $ kunduppsättning, $ kunder var som helst) och lägger till parametrarna till den.
$ dbconnect-> Update ("clients", $ clientsset, $ clientswhere);I alla frågor använder vi den inbyggda MySQLi -funktionen för att upptäcka fel $ mysqli-> fel, som visar ett felmeddelande för alla SQL -frågor eller MySQLi -funktioner som kan ha körts och misslyckats, så att vi kan veta varför felet uppstod.
Vi definierar metoden till Sökdata
För att få data från tabellen skapar vi en frågemetod med två parametrar, den ena är tabellens namn och den andra är en matris som innehåller kolumnernas namn och värdet som ska sökas.
Vi kan ange vilken typ av resultatmatris som ska erhållas. De möjliga värdena för denna parameter är konstanterna MYSQLI_ASSOC, MYSQLI_NUM.
Array typ MYSQLI_ASSOC
Array {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'}Array typ MYSQLI_NUM
Array {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} allmän funktionssökning ($ tabell, $ fält) {$ fields = implode (",", $ fält); $ resultat = $ denna-> anslutning-> fråga ("VÄLJ $ fält FRÅN $ tabell"); return $ result-> fetch_all (MYSQLI_ASSOC); }Vi skapar vår matris med data för sökning som kan komma från ett formulär:
// Array av data för att söka $ clients search = array ("klient -id", "namn");Sedan kommer vi att åberopa det så här, vi åberopar sökfunktionen ("kunder", $ kunder söker) och lägger till parametrarna:
$ connectdb -> sök ($ tabell, $ klienters sökning);Denna funktion returnerar a återuppta som vi måste gå igenom som en array för att se data från varje fält:Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng