Aktueller Standort: Startseite> Neueste Artikel> Was ist der vollständige Nutzungsprozess von Fetch_Fields, Prepet und Bind_Result? Erklären Sie in einem Artikel klar klar

Was ist der vollständige Nutzungsprozess von Fetch_Fields, Prepet und Bind_Result? Erklären Sie in einem Artikel klar klar

M66 2025-06-23

In PHP sind Datenbankoperationen ein unverzichtbarer Bestandteil der täglichen Arbeit der Entwickler. Um die Effizienz zu verbessern und SQL -Injektionsangriffe zu verhindern, ist die Verwendung vorbereiteter Aussagen, die von MySQLI erweitert wurden, ein sehr empfohlener Ansatz. In diesem Artikel wird der Nutzungsprozess von MySQLI Fetch_fields , Prepace und Bind_result in PHP vorgestellt.

1. Methode vorbereiten

Zunächst müssen wir eine Datenbankverbindung erstellen. Anschließend können wir mit der Vorbereitungsmethode eine SQL -Anweisung vorbereiten. Diese Methode akzeptiert eine SQL -Abfrage als Parameter und gibt ein vorbereitetes Anweisungsobjekt zurück.

 $mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

$query = "SELECT id, name, email FROM users WHERE active = ?";
$stmt = $mysqli->prepare($query);

Im obigen Code präzisiert die Verarbeitungsmethode die SQL -Anweisung und erstellt die nachfolgende Parameterbindung.

2. Bind -Parameter ( bind_param )

Als nächstes müssen wir die Parameter binden. Die Methode Bind_param kann den tatsächlichen Parameterwert an die SQL -Anweisung binden. In diesem Beispiel filtert die Abfrage Daten über aktive Felder, sodass wir stattdessen einen Parameter binden ?

 $active = 1;
$stmt->bind_param("i", $active);  // "i"Zeigt ganzzahliger Typ an

Der erste Parameter der Methode Bind_param ist eine Zeichenfolge, die die Typen jedes Parameters in der SQL -Anweisung darstellt. Gemeinsame Typen sind:

  • I : Ganzzahl

  • D : doppelte Präzision schwimmende Punkte

  • S : String

  • B : BLOB -Typ Daten

In diesem Beispiel binden wir einen Ganzzahl -Typparameter ( $ Active ).

3. Führen Sie die Abfrage aus ( ausführen )

Nach dem Binden der Parameter können wir die SQL -Anweisung über die Ausführungsmethode ausführen:

 $stmt->execute();

Zu diesem Zeitpunkt wird die SQL -Abfrage ausgeführt, die Daten wurden jedoch noch nicht zurückgegeben. Wir müssen die Struktur des Abfrageergebnisses über Fetch_Fields erhalten und den Wert jeder Spalte durch BIND_RESULT binden.

4. Erhalten Sie Feldinformationen ( Fetch_fields )

Die Methode Fetch_fields kann Feldinformationen zum Abfrageergebnis einschließlich des Spaltennamens, des Typs usw. erhalten. Es wird ein Array von Feldobjekten zurückgegeben, die für die nachfolgende Ergebnisverarbeitung verwendet werden können.

 $fields = $stmt->fetch_fields();
foreach ($fields as $field) {
    echo "Feldname: " . $field->name . "<br>";
    echo "Feldtyp: " . $field->type . "<br>";
}

Der obige Code gibt den Namen und die Art jedes Feldes aus. Das von der Fetch_Fields -Methode zurückgegebene Feldobjekt enthält reichhaltige Metadaten, die den Entwicklern erleichtert, die Strukturinformationen der Datenbanktabelle zu erhalten.

5. Binden Sie die Ergebnisvariable ( bind_result )

Nach der Ausführung der Abfrage müssen Sie die Spalte des Abfrageergebnisses an die PHP -Variable durch die Methode Bind_result binden. Mit der Methode BIND_RESULT können Sie jede Datenzeile im Ergebnis extrahieren, indem Sie Variablen übergeben.

 $stmt->bind_result($id, $name, $email);

Hier binden wir die Felder für ID , Name und E -Mail im Abfrageergebnis an die Variablen $ ID , $ und $ E -Mail .

6. Holen Sie sich das Ergebnis ( abrufen )

Nach der Bindung der Ergebnisvariablen können wir die Fetch -Methode verwenden, um die Zeile der Abfrageergebnisse nach Zeile zu extrahieren.

 while ($stmt->fetch()) {
    echo "ID: $id, Name: $name, Email: $email<br>";
}

Die Fetch -Methode gibt einen booleschen Wert zurück, der angibt, ob eine Reihe von Daten erfolgreich erhalten wurde. Wenn die Akquisition erfolgreich ist, können die Daten der aktuellen Zeile über die gebundene Variable zugegriffen werden.

7. Aussagen und Verbindungen schließen

Denken Sie daran, dass alle Vorgänge abgeschlossen sind, um die vorbereiteten Anweisungen und Datenbankverbindungen zu schließen, um die Ressourcen freizugeben:

 $stmt->close();
$mysqli->close();

8. Vollständiges Beispiel

Integrieren Sie die obigen Schritte, der endgültige vollständige Code lautet wie folgt:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}

$query = "SELECT id, name, email FROM users WHERE active = ?";
$stmt = $mysqli->prepare($query);

$active = 1;
$stmt->bind_param("i", $active);

$stmt->execute();

$fields = $stmt->fetch_fields();
foreach ($fields as $field) {
    echo "Feldname: " . $field->name . "<br>";
    echo "Feldtyp: " . $field->type . "<br>";
}

$stmt->bind_result($id, $name, $email);
while ($stmt->fetch()) {
    echo "ID: $id, Name: $name, Email: $email<br>";
}

$stmt->close();
$mysqli->close();
?>