Inhaltsverzeichnis
Das MySQLi-Erweiterung ist ein relationaler Datenbanktreiber, der in der Programmiersprache pHp verwendet wird, um eine Schnittstelle zu MySQL-Datenbanken bereitzustellen.Vorteile der Verwendung von MySQLi
Vorbereitete Anweisungen: Es ist einfacher, Abfragen zu erstellen, es bietet viel Sicherheit gegen SQL-Injection, mit der Funktion:
$ mysqli-> vorbereiten ();Mehrere Anfragen oder Anfragen
Möglichkeit, mehrere Abfragen oder Abfragen in einer Verbindung auszuführen.
Beispiel
$ sqla = "SELECT * von Clients;" $ sqlb. = "SELECT * FROM Rechnungen ***** BY Kunden-ID" $ mysqli-> multi_query ($ sqla; sqlb)Objektorientierter
Diese Funktion von MySQLi ermöglicht es dem Entwickler, Objekte zu verwenden, um die Verwendung, Leistung und Sichtbarkeit des Quellcodes zu verbessern.
Der MySQLi Extension-Treiber wird in der Programmiersprache PHP verwendet, um eine Schnittstelle zu MySQL-Datenbanken bereitzustellen. Die Entwickler der Programmiersprache PHP empfehlen die Verwendung von MySQLi ab MySQL-Server-Versionen 4.1.3.
Wir werden eine Klasse erstellen, die von pHp mit Methoden und Eigenschaften verwendet wird, um jede Datenbank zu manipulieren oder zu verwalten.
Die Klasse wird wie folgt sein:
class dbmysqli {// eine Variable für die Verbindung deklarieren public $ connection; // Wir deklarieren den Konstruktor der Klasse public function __construct ($ host, $ user, $ password, $ db) {} // Funktion zum Erstellen von Tabellen public function create table ($ sql) {} // Speichern Sie neue Daten im database data public function insert ($ table, $ field data) {} // Daten aus der Datenbank löschen public function delete ($ table, $ field data) {} public function Update ($ table, $ field set, $ field condition) {} // Funktion Suche in einer Tabelle öffentliche Funktion Suche ($-Tabelle, $-Felder) {}}MySQLi-Verbindung und -Klasse
Um den MySQLi-Server zu verbinden, müssen wir die Konstruktor-Methode aufrufen und vier Argumente senden, nämlich den Hostnamen wie localhost, Benutzername, Datenbankpasswort und den Datenbanknamen.
Im Konstruktor fügen wir die Verbindung zum Server hinzu:
öffentliche Funktion __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Dann rufen wir es so auf:
// Verbindung zum Server und zur Datenbank herstellen $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Wir definieren die Methode, um Tabellen dynamisch zu erstellen:
// Funktion die Tabellen erstellt public function createdtable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Eine Tabelle wurde erstellt"; } else {echo "Fehlgeschlagen: Tabelle nicht erstellt" $ this-> connection-> error; }}Dann rufen wir es so auf, erstellen die SQL-Abfrage und rufen die Funktion auf creartabla ():
$ sql = ”DROP TABLE IF EXISTS`-Clients`; CREATE TABLE IF NOT EXISTS `customers` (`customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (`customerid`)) ”$ connectb -> creartabla ($ sql);Wir können von pHpMyAdmin sehen, wie die Tabelle erstellt wurde, wenn Sie das ausführen PHP-Skript.
Wir definieren die Methode zum Einfügen / Speichern von Daten
Als nächstes erstellen wir die Methoden namens ABM oder CRUD, die für die Verwaltung der Daten in den Tabellen verantwortlich sind. Um Parameter an jede Methode zu senden, verwenden wir ein Array, wobei der Index des Arrays das Feld der Tabelle und der Wert dieses Index die Daten für das Feld der Tabelle sind. Jeder Indexname muss in doppelte Anführungszeichen eingeschlossen werden und der Wert muss die folgenden Regeln erfüllen:
- Stringwerte müssen einfache Anführungszeichen haben. Beispiel "name" => 'Maria'
- Numerische Werte dürfen keine Anführungszeichen enthalten. Beispiel "Preis" => 10,50
- Das Wort NULL ODER leer darf keine Anführungszeichen enthalten. Beispiel "Preis" => NULL
// Wir erstellen die Funktion, die als Parameter das Array field => data public function insert ($ table, $ field data) verwendet {// wir trennen die Daten, wenn es mehrere gibt $ field = implode (",", array_keys ($ Felddaten)); $i = 0; foreach ($ Datenfelder als $ Index => $ Wert) {$ Daten [$ i] = "'". $ Wert. "'"; $ich++; } $ data = implodieren (",", $ data); // Wir fügen die Werte in jedes Feld ein if ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Neuer Client eingefügt"; } else {echo "Der Client wurde nicht eingefügt, ist fehlgeschlagen" $ this-> connection-> error; }}Wir erstellen unsere Matrix mit den Daten, die aus einem Formular stammen können:
// Datenmatrix zum Einfügen von $ Kunden = Array ("name" => 'Carlos Moira', "name" => 'Jose Triana', "name" => 'Julia Ordoñez', "name" => 'Carla Angelez ' );Dann rufen wir es so auf, rufen die Einfügefunktion ("Kunden", $ Kunden) auf und fügen die Parameter hinzu:
$conedb -> einfügen ("clients", $clients);Wir definieren die Methode zum Löschen von Daten
Um die Löschoperation auszuführen, deklarieren wir ein Array, in dem wir angeben, welche Zeile oder ID wir löschen möchten.
// Funktion zum Löschen von Daten aus einer Tabelle public function delete ($ table, $ datafields) {$ i = 0; foreach ($ Datenfelder als $ Index => $ Wert) {$ Daten [$ i] = "'". $ Wert. "'"; $ich++; } $ Feld und Daten = implodieren ("UND", $ Daten); if ($ this-> connection-> query ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Datensatz gelöscht"; } else {echo "Fehler, der Datensatz konnte nicht gelöscht werden". $ this-> connection-> error;}}Wir erstellen unsere Matrix mit den ausgewählten Daten zum Löschen, die aus einem Formular stammen können
// Datenmatrix zu löschen $ Kunden delete = Array ("Kundennummer" => 1, "Kundennummer" => 50, "Kundennummer" => 8, "Kundennummer" => 104);Dann rufen wir es so auf, rufen die Löschfunktion ("Kunden", $ Kunden löschen) auf und fügen die Parameter hinzu
$ conectadb -> löschen („clients“, $clients delete);Wir definieren die Methode zum Aktualisieren von Daten
Um die Daten der zu ändernden Zeile zu aktualisieren, deklarieren wir zwei assoziative Arrays, eines für die zu ändernden Felder und das andere für die Bedingung wo in der SQL-Abfrage. Die Matrixregeln müssen der gleichen Syntax entsprechen, die wir von Anfang an für die Matrix definiert haben.
Unter Berücksichtigung der MySQL-Update-Syntax:
UPDATE Clients SET name = 'neuername' WHERE clientid.id = idvalue; // Wir erstellen die Funktion, die das Array-Feld als Parameter verwendet => öffentliche Datenfunktion Update ($ table, $ setfields, $ conditionfields) {// wir trennen die SET-Werte, um $ i = 0 zu ändern; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ich++; } $ queryset = implode (",", $ datoset); $i = 0; foreach ($ Bedingungsfelder als $ Index => $ Bedingungsdaten) {$ Bedingung [$ i] = $ Index. "= '". $ Bedingungsdaten. "'"; $ich++; } $ Abfragebedingung = implode ("UND", $ Bedingung); // Datensätze aktualisieren if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record aktualisiert "; } else {echo "Fehler, der Datensatz konnte nicht gelöscht werden". $ this-> connection-> error;}}Wir erstellen unser Array mit den SET-Daten, die die zu aktualisierenden Felder und neuen Werte sind, und erstellen auch ein Array für die WHERE-Bedingung mit der ID der zu aktualisierenden Datensätze, die aus einem Formular stammen können:
// Datenmatrix SET $ customerset = array ("name" => 'Carlos Juan Dolfo', "name" => 'Pedro Dorien Triana', "name" => 'Enrique Ordoñez', "name" => 'Carla Dolores Angeles'); $ customerwhere = array ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10);Dann rufen wir es so auf, wir rufen die Update-Funktion ("customers", $customersset, $customerswhere) auf und fügen die Parameter hinzu.
$ dbconnect-> Update ("clients", $clientsset, $clientswhere);Bei allen Abfragen verwenden wir die native MySQLi-Funktion, um Fehler zu erkennen $ mysqli-> Fehler, die eine Fehlermeldung für jede SQL-Abfrage oder MySQLi-Funktion anzeigt, die möglicherweise ausgeführt wurde und fehlgeschlagen ist, damit wir wissen, warum der Fehler aufgetreten ist.
Wir definieren die Methode zum Suchen von Daten
Um die Daten aus der Tabelle zu erhalten, erstellen wir eine Abfragemethode mit zwei Parametern, einer ist der Name der Tabelle und der andere ist ein Array, das den Namen der Spalten und den zu suchenden Wert enthält.
Wir können den Typ der zu erhaltenden Ergebnismatrix angeben. Die möglichen Werte für diesen Parameter sind die Konstanten 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'} öffentliche Funktionssuche ($-Tabelle, $-Felder) {$-Felder = implode (",", $-Felder); $ result = $ this-> connection-> query ("SELECT $ Felder FROM $ table"); Rückgabe $ result-> fetch_all (MYSQLI_ASSOC); }Wir erstellen unsere Matrix mit den zu suchenden Daten, die aus einem Formular stammen können:
// Array von zu durchsuchenden Daten $ client search = array ("client id", ”name”);Dann rufen wir es so auf, rufen die Suchfunktion ("Kunden", $Kundensuche) auf und fügen die Parameter hinzu:
$ connectdb -> Suche ($ Tabelle, $ Clients Suche);Diese Funktion gibt a . zurück Aufnahme die wir als Array durchlaufen müssen, um die Daten jedes Feldes zu sehen:Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben