In PHP müssen wir oft Daten aus der Datenbank abrufen und sie im JSON-Format zurückgeben, z. B. eine API-Schnittstelle für das Front-End. Zu diesem Zweck können Sie die MySQLI -Erweiterung verwenden, um die Abfrage auszuführen, und dann die Funktion json_encode (), um das Ergebnisarray in einen JSON -String zu codieren.
In diesem Artikel wird erläutert, wie dieser Prozess Schritt für Schritt implementiert wird.
Zunächst müssen Sie MySQLI verwenden, um eine Verbindung zur Datenbank zu erstellen:
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";
$conn = new mysqli($servername, $username, $password, $database);
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
Nehmen wir die Abfragen einer Tabelle mit dem Namen Benutzer als Beispiel, um alle Benutzerdaten zu erhalten:
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
Hier ist $ Ergebnis ein MySQLI_Result -Objekt, das die Abfrageergebnisse enthält.
Da json_encode () das Objekt mySQLi_Result nicht direkt codieren kann, müssen wir es zuerst in ein Array umwandeln:
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
Hier verwenden wir die Methode Fetch_assoc (), um jede Datenzeile als assoziatives Array zu entfernen und dem $ data -Array hinzuzufügen.
Nachdem wir das Array $ -Daten mit allen Abfrageergebnissen haben, können wir es mit JSON_Encode () in JSON -Format konvertieren:
$jsonResult = json_encode($data);
// Ausgabe JSON Daten
header('Content-Type: application/json');
echo $jsonResult;
Hier setzen wir auch den Header vom Typ Inhalt auf Anwendung/JSON, um dem Client mitzuteilen, dass das JSON-Format zurückgegeben wird.
Kombinieren Sie die obigen Schritte und der vollständige Code lautet wie folgt:
<?php
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
$conn->close();
header('Content-Type: application/json');
echo json_encode($data);
?>
Stellen Sie sicher, dass die Datenbankverbindungsinformationen (z. B. Benutzername, Kennwort, Datenbankname) korrekt sind.
In den tatsächlichen Projekten wird für Sicherheit und Leistung empfohlen, vorbereitete Anweisungen anstelle von direktem Spleißen -SQL zu verwenden.
Wenn Sie die Schnittstelle testen möchten, können Sie beispielsweise mit einem Browser darauf zugreifen:
https://m66.net/api/get_users.php
Auf diese Weise können Sie JSON-Benutzerdaten direkt im Browser- oder Front-End-Code erhalten.