Aktueller Standort: Startseite> Neueste Artikel> Wie konvertiere ich Datenbankabfrageergebnisse in Objekte mit MySQLI_Result :: fetch_object ()?

Wie konvertiere ich Datenbankabfrageergebnisse in Objekte mit MySQLI_Result :: fetch_object ()?

M66 2025-05-17

Wenn wir in PHP Datenbankvorgänge ausführen, verwenden wir normalerweise mySQLI_Query () , um die Abfrage auszuführen und das Objekt mySQLi_Result zu verwenden, um das Ergebnis zu erhalten. Wenn Sie die Abfrageergebnisse direkt in Objekte umwandeln möchten, können Sie die Methode mySQLI_Result :: fetch_object () verwenden.

In diesem Artikel werden Sie Schritt für Schritt in die Art und Weise eingehen, wie Sie ihn verwenden und mit einem einfachen Beispiel demonstrieren.

1 ?? Was ist mySQLI_Result :: fetch_object () ?

fetch_object () ist eine Methode der MySQLi_Result -Klasse, mit der die aktuelle Zeile aus dem Abfrageergebnis abgerufen und als Objekt zurückgegeben wird. Standardmäßig wird ein Standardobjekt ( STDClass ) zurückgegeben, dessen Eigenschaftsname dem Datenbankfeldnamen entspricht.

Sie können auch einen Klassennamen übergeben, die Methode eine Instanz der angegebenen Klasse zurückgeben und dem Objektattribut den Feldwert zuweisen.

2 ?? Grundlegende Syntax

 object mysqli_result::fetch_object ([ string $class_name = "stdClass" [, array $params ]] )
  • $ class_name : Der zu instanziierte Klassenname, der Standardwert ist STDCASS .

  • $ params : Wenn der Klassenname angegeben ist, kann der Konstruktorparameter übergeben werden.

3 ?? Beispielcode: Abfragen und in ein Objekt konvertieren

Angenommen, Sie haben eine Tabelle namens Benutzer . Die Struktur lautet wie folgt:

Ausweis Name E-Mail
1 Alice alice@m66.net
2 Bob bob@m66.net

Hier ist der Beispielcode:

 <?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli("localhost", "username", "password", "database");

// Überprüfen Sie die Verbindung
if ($mysqli->connect_errno) {
    echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
    exit();
}

// Eine Frage ausführen
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);

if ($result) {
    while ($user = $result->fetch_object()) {
        echo "ID: " . $user->id . "<br>";
        echo "Name: " . $user->name . "<br>";
        echo "Email: " . $user->email . "<br><br>";
    }
    $result->free();
} else {
    echo "Abfrage fehlgeschlagen: " . $mysqli->error;
}

// Schließen Sie die Verbindung
$mysqli->close();
?>

In diesem Beispiel ist jeder Loop $ -Nutzer ein STD -Class -Objekt, das die ID- , Name- und E -Mail -Attribute der aktuellen Zeile enthält.

4 ?? Verwenden Sie benutzerdefinierte Klassen

Sie können auch fetch_object () ein bestimmtes Klassenobjekt zurückgeben lassen, z. B.:

 <?php
class User {
    public $id;
    public $name;
    public $email;

    public function display() {
        echo "[$this->id] $this->name <$this->email><br>";
    }
}

$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);

if ($result) {
    while ($user = $result->fetch_object('User')) {
        $user->display();
    }
    $result->free();
}
?>

Auf diese Weise erhalten Sie jedes Mal, wenn Sie Schleifen haben, eine Benutzerinstanz und Sie können seine Methoden direkt aufrufen.

5 ?? Notizen

  • Wenn das Abfrageergebnis leer ist, gibt Fetch_object () false zurück.

  • Wenn ein Klassenname angegeben ist, müssen die Attribute der Klasse öffentlich sein, andernfalls kann der Wert nicht direkt zugewiesen werden.

  • Fetch_object () extrahiert nur eine Datenzeile gleichzeitig und muss in einer Schleife verwendet werden.