Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verbinden Sie PHP mit MySQL

Möchten Sie lernen, wie man PHP mit MySQL verbindet und verschiedene Arten von Datenbankoperationen durchführt? In diesem Artikel werden wir genau das tun – wir werden die MySQL-Datenbankkonnektivität in PHP besprechen.

PHP bietet verschiedene Möglichkeiten, PHP mit einem MySQL-Datenbankserver zu verbinden. Bis PHP 5.5 war eine der beliebtesten Methoden die MySQL-Erweiterung – sie bot eine „prozedurale“ Möglichkeit, sich mit dem MySQL-Server zu verbinden. Diese Erweiterung ist jedoch seit PHP 5.5 veraltet, daher werden wir das nicht diskutieren.

Derzeit sind Ihre beiden Möglichkeiten PDO und MySQLi.

Die PDO-Erweiterung (PHP Data Objects) unterstützt verschiedene Arten von zugrunde liegenden Datenbankservern zusammen mit dem MySQL-Server. Und daher ist es portabel, falls Sie sich entscheiden, den zugrunde liegenden Datenbankserver zu irgendeinem Zeitpunkt in der Zukunft auszutauschen.

Andererseits ist die MySQLi-Erweiterung spezifisch für den MySQL-Server und bietet eine bessere Geschwindigkeit und Leistung. Auch die MySQLi-Erweiterung ist zunächst vielleicht etwas einfacher zu verstehen, da Sie damit direkt SQL-Abfragen schreiben können. Wenn Sie bereits mit SQL-Datenbanken gearbeitet haben, wird Ihnen dies sehr vertraut sein. Die PDO-Erweiterung erstellt jedoch eine leistungsstarke Zuordnung von der SQL-Datenbank zu Ihrem PHP-Code und ermöglicht Ihnen viele Datenbankoperationen, ohne die Details von SQL oder der Datenbank kennen zu müssen. Auf lange Sicht und bei größeren Projekten kann dies viel Programmier- und Debugging-Aufwand sparen.

In diesem Beitrag verwende ich die MySQLi-Erweiterung. Aber Sie können hier auf Envato Tuts+ mehr über die PDO-Erweiterung erfahren.

  • PHPErstellen Sie schnell eine PHP CRUD-Schnittstelle mit dem PDO Advanced CRUD Generator ToolSajal Soni

Wir behandeln die folgenden Themen in diesem Artikel:

  • Erstellen einer MySQL-Verbindung
  • Einfügen, Aktualisieren und Löschen von Datensätzen
  • Datensätze abrufen

Beste PHP-Datenbankskripte auf CodeCanyon

In diesem Beitrag zeige ich Ihnen, wie Sie von PHP aus eine Bare-Metal-Verbindung zu einer MySQL-Datenbank herstellen. Dies ist eine wichtige Fähigkeit, aber wenn Sie bei Ihrem nächsten Projekt Zeit sparen möchten, sollten Sie vielleicht auf ein professionelles Datenbankskript upgraden. Das spart Zeit und erleichtert Ihre Arbeit.

Entdecken Sie die besten und nützlichsten PHP-Datenbankskripte, die jemals auf CodeCanyon erstellt wurden. Mit einer günstigen Einmalzahlung können Sie diese hochwertigen WordPress-Themes erwerben und Ihr Website-Erlebnis für Sie und Ihre Besucher verbessern.

Hier sind einige der besten PHP-Datenbankskripte, die 2020 auf CodeCanyon verfügbar sind.

  • PHPVergleich von PHP-Datenbankabstraktionsschichten und CRUD-Plugins Sajal Soni

Erstelle eine MySQL-Verbindung

In diesem Abschnitt zeige ich Ihnen, wie Sie von Ihrem PHP-Skript aus eine Verbindung zum MySQL-Server herstellen und ein Verbindungsobjekt erstellen können. Später wird dieses Verbindungsobjekt verwendet, um Abfragen auszuführen, Ausgaben abzurufen und die Datenbankeinträge zu manipulieren. Wie wir bereits besprochen haben, werden wir für diesen Artikel die PHP-MySQLi-Erweiterung verwenden.

Die MySQLi-Erweiterung bietet zwei verschiedene Möglichkeiten, Datenbankoperationen durchzuführen. Sie können es entweder objektorientiert oder prozedural verwenden, aber da sich dieses Tutorial an Anfänger richtet, bleibe ich bei der prozeduralen Methode. Wenn Sie daran interessiert sind, einige objektorientierte Snippets zu sehen, können Sie mich im Kommentarbereich unten anpingen, und ich werde sie Ihnen gerne zur Verfügung stellen.

Erstellen Sie zunächst die db_connect.php Datei unter Ihrem Dokumentenstamm mit folgendem Inhalt.

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Beachten Sie, dass ich Platzhalter in mysqli_connect verwendet habe Funktion – Sie müssen diese durch tatsächliche Werte ersetzen.

Lassen Sie uns jeden Platzhalter durchgehen, um zu sehen, wofür er steht.

  • {HOST_NAME} :Dies repräsentiert den Hostnamen oder die IP-Adresse Ihres MySQL-Servers. Wenn Sie den MySQL-Server zusammen mit PHP auf demselben System installiert haben, sollten Sie localhost verwenden oder 127.0.0.1 . Wenn Sie hingegen einen extern gehosteten MySQL-Server verwenden, können Sie den entsprechenden Hostnamen oder die entsprechende IP-Adresse verwenden.
  • {DATABASE_USERNAME} :Dies repräsentiert den Benutzernamen Ihres MySQL-Benutzers. Im Grunde ist dies der Benutzername, den Sie verwenden, um sich mit Ihrem MySQL-Server zu verbinden.
  • {DATABASE_PASSWORD} :Dies repräsentiert das Passwort Ihres MySQL-Benutzers. Auch hier handelt es sich um das Passwort, mit dem Sie sich zusammen mit dem MySQL-Benutzernamen mit Ihrem MySQL-Server verbinden.
  • {DATABASE_NAME} :Dies ist der Name der MySQL-Datenbank, mit der Sie sich verbinden möchten. Sobald die Verbindung hergestellt ist, fragen Sie diese Datenbank für weitere Vorgänge ab.

Ersetzen Sie diese Platzhalter durch tatsächliche Werte. In meinem Fall habe ich den MySQL-Server lokal installiert und einen MySQL-Benutzer mit tutsplus-demo-user als MySQL-Benutzername und tutsplus-demo-Passwort als MySQL-Passwort. Und damit sieht das obige Beispiel so aus:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Wenn Sie dieses Beispiel ausführen, sollte es einen Datenbankverbindungslink erstellen und ihn $mysqli_link zuweisen Variable, die wir später verwenden werden, um verschiedene Arten von Datenbankoperationen auszuführen.

Wenn es andererseits ein Problem beim Verbindungsaufbau gibt, wird die  mysqli_connect_errno Funktion gibt einen Fehlercode und den mysqli_connect_error zurück Funktion zeigt den tatsächlichen Fehler an. Im obigen Beispiel haben wir es zu Debugging-Zwecken verwendet.

Jetzt haben wir eine erfolgreiche Verbindung zum MySQL-Server und werden ab dem nächsten Abschnitt sehen, wie man damit verschiedene Arten von Abfragen durchführt.

Einfügen von Datensätzen

Im vorherigen Abschnitt haben wir besprochen, wie man mysqli_connect verwendet Funktion zum Aufbau einer Datenbankverbindung mit dem MySQL-Server. In diesem Abschnitt besprechen wir, wie Sie das Verbindungsobjekt verwenden, um INSERT auszuführen Abfragen.

Wenn Sie den in diesem Artikel besprochenen Beispielen folgen möchten, müssen Sie die folgende MySQL-Tabelle in Ihrer Datenbank erstellen. Es ist die Tabelle, die wir von nun an in allen Beispielen verwenden werden.

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Fahren Sie fort und erstellen Sie die obige MySQL-Tabelle mit der phpMyAdmin-Software oder dem Befehlszeilentool.

Als nächstes erstellen wir die db_insert.php Datei mit folgendem Inhalt. Bitte vergessen Sie nicht, die Verbindungsparameter durch Ihre eigenen zu ersetzen.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Zuerst richten wir eine Datenbankverbindung ein, indem wir mysqli_connect verwenden Funktion, wie wir bereits besprochen haben. Danach haben wir die Insert-Abfrage vorbereitet, die wir später ausführen werden. Es ist wichtig zu beachten, dass wir den mysqli_real_escape_string verwendet haben Funktion, um Zeichenfolgenwerte zu maskieren, die wir in der Einfügeabfrage verwenden werden. Insbesondere müssen Sie diese Funktion verwenden, wenn Sie mit Werten arbeiten, die über $_POST übermittelt werden Variablen, um SQL-Injection zu vermeiden.

Schließlich haben wir die mysqli_query verwendet Funktion, die zwei Argumente akzeptiert. Das erste Argument ist der aktive Verbindungslink, auf dem die Abfrage ausgeführt wird. Und das zweite Argument ist die MySQL-Abfrage, die wir ausführen möchten. Die mysqli_query Funktion gibt TRUE zurück wenn die Abfrage erfolgreich ausgeführt wurde.

Schließlich haben wir den mysqli_close verwendet Funktion zum Schließen der aktiven Datenbankverbindung. Es empfiehlt sich, die Datenbankverbindung zu schließen, sobald Sie mit den Datenbankoperationen fertig sind.

Fahren Sie fort und führen Sie das Skript aus, und das sollte einen Datensatz in students einfügen Tisch!

So aktualisieren Sie Datensätze

Das Aktualisieren der Datensätze in einer Datenbank aus dem PHP-Skript ist dem Einfügevorgang sehr ähnlich; Der einzige Unterschied besteht darin, dass die Abfrage die Aktualisierungsabfrage anstelle der Einfügeabfrage sein wird.

Lassen Sie uns das obige Beispiel überarbeiten und den first_name aktualisieren Feld, wie im folgenden Beispiel gezeigt.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Fahren Sie fort und führen Sie das Skript aus, und das sollte den Datensatz in students aktualisieren Tisch.

So wählen Sie Datensätze aus

In den vorherigen Abschnitten haben wir besprochen, wie Sie Datensätze in eine Datenbank aus dem PHP-Skript einfügen und aktualisieren können. In diesem Abschnitt untersuchen wir, wie Sie Datensätze aus einer Datenbank abrufen können, indem Sie die verschiedenen Arten von MySQLi-Funktionen verwenden.

Zuerst müssen Sie die mysqli_query verwenden Funktion zum Ausführen der Auswahlabfrage. Bei erfolgreicher Ausführung der Select-Abfrage wird die mysqli_query Die Funktion gibt das mysqli-Ergebnisobjekt zurück, das wir verwenden könnten, um über die von der Auswahlabfrage zurückgegebenen Datensätze zu iterieren. Für das Abrufen und Durchlaufen der Datensätze aus dem MySQLi-Ergebnisobjekt stehen verschiedene Funktionen zur Verfügung.

  • mysqli_fetch_all :Damit können Sie alle Ergebniszeilen auf einmal abrufen. Sie können auch angeben, ob Sie Ergebnisse als assoziatives Array, als numerisches Array oder beides haben möchten.
  • mysqli_fetch_array :Damit können Sie jeweils eine Zeile abrufen. Daher müssen Sie die While-Schleife verwenden, um alle Datensätze zu durchlaufen. Auch hier können Sie angeben, ob eine Ergebniszeile ein assoziatives Array, ein numerisches Array oder beides sein soll.
  • mysqli_fetch_assoc :Es ruft eine Ergebniszeile einzeln als zugehöriges Array ab.
  • mysqli_fetch_object :Es ruft eine Ergebniszeile einzeln als Objekt ab.

Schauen wir uns das folgende Beispiel an, um zu verstehen, wie es funktioniert:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Wie Sie sehen können, haben wir das mysqli_fetch_array verwendet Funktion mit dem MYSQLI_ASSOC Option als zweites Argument. Und somit gibt es die Ergebniszeile als assoziiertes Array zurück. Wenn Sie den MYSQLI_NUM verwenden Option würden Sie wie $row[0] darauf zugreifen , $row[1][code> und $row[2][2][code> im obigen Beispiel.

Wenn Sie andererseits das mysqli_fetch_object verwenden Funktion im obigen Beispiel können Sie auf die Werte zugreifen, wie im folgenden Snippet gezeigt. Der Kürze halber füge ich nur das While-Schleifen-Snippet hinzu.

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Auf diese Weise können Sie Datensätze aus der MySQLi-Datenbank abrufen und anzeigen.

So löschen Sie Datensätze

In diesem Abschnitt sehen wir, wie Sie Löschabfragen aus dem PHP-Skript ausführen. Das Löschen von Datensätzen aus einer Datenbank ist ein ziemlich unkomplizierter Vorgang, da Sie nur die Löschabfrage vorbereiten und mit mysqli_query ausführen müssen Funktion.

Sehen wir uns das folgende Beispiel an, um zu sehen, wie es funktioniert.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Wie Sie sehen können, ist alles so, wie wir es bereits bei den Einfügungs- und Aktualisierungsbeispielen gesehen haben, außer dass die Abfrage in diesem Fall eine Löschabfrage ist.

Auf diese Weise können Sie also verschiedene Arten von Datenbankoperationen aus dem PHP-Skript ausführen.

Und damit sind wir am Ende dieses Tutorials angelangt. Was wir heute bisher besprochen haben, sollte Ihnen helfen, die Konzepte der Datenbankkonnektivität zu stärken, insbesondere, wie Sie PHP mit MySQL verbinden und verschiedene Arten von Operationen ausführen können.