Moderne und sichere Verbindungen zu Datenbanken mit PHP

Inhaltsverzeichnis
Wenn eine Anwendung durch etwas beschädigt werden kann, wenn wir nicht die angemessenen Ressourcen verwenden, um sie schneller und sicherer zu machen, gibt es viele Möglichkeiten, die Geschwindigkeit und Sicherheit der Anwendungen zu verbessern, beispielsweise durch die Verwendung besserer Entwicklungsmuster, Anwendung einer höheren Sicherheit auf den Servern usw.
Es gibt jedoch einen Punkt, an dem wir oft nicht aufhören zu denken, und zwar dann, wenn das Werkzeug, das uns die Sprache bietet, das beste für unsere Arbeit ist. Das passiert oft in PHP Trotz der Tatsache, dass es seit vielen Jahren eine Warnung gibt, die Funktion nicht zu verwenden mysql_connect() Verbindungen herstellen zu Datenbanken, scheinen viele Entwickler den großen Fehler, den sie bei der Verwendung machen, nicht zu erkennen.
PHP hat native Unterstützung für eine große Anzahl von Engines Datenbanken die auf dem Markt existieren, jedoch seine Integration mit MySQL es ist fast ein obligatorischer Ausgangspunkt für die meisten Benutzer.
mysql_connect()Ab Version 5.5 von PHP klassische Funktion mysql_connect() ist im Zustand veraltet, das heißt, es ist veraltet und es wird dringend empfohlen, es nicht zu verwenden, da es in zukünftigen Versionen der Sprache nicht enthalten sein wird.
Die Alternative zum Herstellen der Verbindung geht über zwei Elemente. Das erste besteht darin, die gleiche Sprachstruktur zum Herstellen von Verbindungen zu verwenden oder die neue Bibliothek zu verwenden, um eine Verbindung herzustellen MySQL. Hier könnte die erste Frage kommen, warum nur darüber nachdenken MySQL? Nun, die Antwort ist einfach, es ist ein Anfang, es ist das Einfachste und Nützlichste, was wir zu Beginn erklären können, wenn wir diese Basis kennen, können wir auf andere Motoren und Treiber extrapolieren.
Die erste Anschlussalternative an Datenbank ist die Verwendung des eigenen Datenobjekts der Sprache namens PHP-Datenobjekt oder seine Abkürzung gU. Dies ist nichts anderes als eine große schriftliche Erweiterung in der Sprache C das ermöglicht es uns, Verbindungen zu verschiedenen Arten von Motoren herzustellen Datenbanken und dass es Standardmethoden hat, die uns die Möglichkeit geben, plattformübergreifende Anwendungen zu schreiben, dh wir müssen die Syntax nicht ändern, wenn wir die Datenbank-Engine ändern.
Zuerst haben wir gesagt, wir konzentrieren uns auf MySQL, aber wenn wir eine Verbindung herstellen durch gU Was wir tun, können wir auf andere Motoren übertragen. Dazu müssen wir nur die Treiber für diese Engines aktivieren bzw. einbinden und in der Datei aktivieren php.ini vom Server.
Zum Verbinden mit a Datenbank wir müssen nur die Verbindung mit der entsprechenden Methode herstellen, in gU Die Verbindung wird mit drei grundlegenden Parametern hergestellt, dem Namen des Datenbankservers, dem Benutzernamen und seinem Passwort.
Der einzige erklärungsbedürftige Parameter dieser drei ist der des Datenbankservers, in der Vergangenheit mussten wir den Datenbank Durch eine spezielle Funktion nach dem Herstellen der Verbindung werden wir dies in diesem Fall in derselben Zeichenfolge tun, sodass unsere Servernamenszeichenfolge wie folgt aussehen würde:
mysql: host = hostname; dbname = dbname

Wir sehen, dass wir zunächst den Motor angeben, in diesem Fall mysql dann mit host werden wir Ihnen sagen, welcher der Server ist, hier kann es a . sein IP oder localhost wenn der Server lokal ist, schließlich mit Datenbankname Wir übergeben den Namen der Datenbank, zu der wir eine Verbindung herstellen möchten. Wir werden im folgenden Bild beobachten, wie ein Code eine Verbindung herstellen soll mit gU:

VERGRÖSSERN

Da wir den ersten Schritt kennen, der eine Verbindung herstellt, müssen wir jetzt lernen, wie wir Abfragen ausführen können. In der Vergangenheit haben wir normalerweise die Abfrage direkt mit ihren Parametern ausgeführt Angriffe der Art SQL-Injektion, gU ermöglicht es uns, die sog Vorbereitete Aussagen was nichts anderes ist, als die Abfrage auf parametrisierte Weise auszuführen, sodass die Bibliothek selbst eine Debugging-Aufgabe durchführt und weniger anfällig für Angriffe ist. Sehen wir uns als nächstes an, wie Sie eine einfache Abfrage ausführen und dann ihr Äquivalent mit Vorbereitete Aussage.
In dieser einfachen Abfrage gehen wir davon aus, dass wir eine Tabelle in unserem haben Datenbank Forderung Autor das bekommt einen Autorencode und dann seinen Namen, natürlich ist das kein Beispiel für eine gute Tabelle, wir sind nur daran interessiert zu wissen, wie die Verbindung funktioniert gU.
Im Bild sehen wir, dass wir eine Methode namens . aufrufen Anfrage () aus dem mit dem PDO-Verbindungsstring erstellten Objekt, dann schreiben wir unsere Abfrage ohne große Probleme:

VERGRÖSSERN

Das Problem ist, dass wir die Werte direkt erhalten, daher gibt es keine Möglichkeit, diese zu verbessern und wiederzuverwenden, stattdessen wenn wir a Vorbereitete Aussage, wir werden sehen, dass wir zuerst angeben, welche Abfrage ausgeführt werden soll, dann mit einer anderen Methode machen wir sie wirksam und übergeben ihr die erforderlichen Werte. Damit kommt die Parameter-Debugging-Engine ins Spiel. gU und bietet so ein zusätzliches Schutzniveau. Sehen wir uns im folgenden Bild an, wie das vorherige Beispiel mit aussehen würde Vorbereitete Aussagen jetzt.

VERGRÖSSERN

Auf den ersten Blick mag es etwas komplex und nicht optimal erscheinen, aber wenn wir analysieren, sehen wir, dass wir zuerst die auszuführende Abfrage festlegen, dann ein Array mit den Parametern erstellen, die unsere Abfrage erhält, im Fall des Beispiels wir erhalten den Code des Autors und seinen Namen, schließlich führen wir die Abfrage aus und übergeben ihr das Parameter-Array.
Wenn wir einmal konsultieren möchten, haben wir bereits einige Werte in unsere eingefügt Datenbank es ist ganz einfach, wir müssen es nur mit einer Abfrage machen AUSWÄHLEN, dies wird es uns ermöglichen, die Aufzeichnungen zu bringen, in der Vergangenheit waren wir auf Funktionen wie mysql_fetch_array() oder mysql_fetch_assoc() das einmal konsumiert hat uns nicht mehr in der Lage, seine Ergebnisse wieder zu verwalten.
Mit gU Wir werden die Daten direkt aus dem Objekt beziehen, damit wir sie während der Ausführung immer zur Verfügung haben. Sehen wir uns im folgenden Beispiel an, wie es gemacht würde:

Wir sehen, wie wir anfangs a Vorbereitete Aussage, machen wir in diesem Fall eine einfache Abfrage und dann mit einer Schleife während () Wir werden jede der Aufzeichnungen besorgen und drucken, wenn wir feststellen, dass wir uns nicht darauf beziehen MySQL irgendwo in unserem Code, also wenn wir die Verbindungszeichenfolge ändern und eine andere Engine verwenden, die eine Tabelle und a . hat Datenbank gleichen Namens und gleicher Struktur können wir Ihre Daten erhalten, ohne unseren Code ändern zu müssen.
Was MySQL ist die beliebteste Datenbank-Engine, in die integriert werden kann PHP, es gibt auch eine Alternative und es ist MySQLi das ist nichts anderes als eine objektorientierte Schnittstelle. Seine Arbeitsweise ist der von . sehr ähnlich gUWas sich jedoch ändert, ist, dass es nur für diese beliebte Datenbank-Engine gilt, sodass eine plattformübergreifende Konvertierung nicht möglich wäre.
Die Verbindungszeichenfolge ist etwas weniger komplex, da sie den Namen des Servers im Host und die zu verwendende Datenbank zusätzlich zum Namen und Kennwort des Benutzers in zwei verschiedene Parameter unterteilt. Sehen wir uns an, wie es aussieht:
$ objConex = new mysqli (HostName, Benutzer, Passwort, Datenbankname);

Sehen wir uns im folgenden Beispiel an, wie wir mit eine Verbindung herstellen MySQLi und wie wir eine einfache Dateneinfügung durchführen können:

VERGRÖSSERN

Wir stellen fest, dass es eine Ähnlichkeit mit gU indem du eine Methode hast Anfrage () auch, aber das funktioniert nur für MySQL.
Jetzt werden wir die Daten, die wir aus einer Abfrage erhalten können, empfangen und iterieren, dafür verwenden wir die gleiche Methode Anfrage () und dann die Methode fetch_assoc() um die Ergebnisse zu erhalten:

Das Interessanteste, was uns aufgefallen ist, ist, dass wir die Methode verwenden schließen (), beendet es die aktuelle Verbindung und säubert den Puffer so, dass die Nutzung der Serverressourcen optimiert wird.
WichtigWir müssen bedenken, dass, wenn wir ein System haben, das in einer alten Version von PHP und wir werden nicht auf neue Versionen migrieren, vielleicht ändern Sie die Verbindungszeichenfolgen in Datenbank und Abfragemethoden sind möglicherweise keine gute Idee für die Arbeit, die sie darstellen. Wenn wir jedoch neue Anwendungen und Systeme erstellen möchten, ist es am besten, mit einer soliden Grundlage zu beginnen und diese neuen Bibliotheken mit Unterstützung in zukünftigen Versionen von zu verwenden PHP.
Damit beenden wir dieses Tutorial, wir haben gesehen, dass die neuen Alternativen viel sauberer und sicherer sind und ihre Benutzerfreundlichkeit sie für die aktuelle Zeit geeignet macht.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

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave