Die MySQL -Erweiterung ist eines der am häufigsten verwendeten Tools bei der Verwendung von PHP für MySQL -Datenbankvorgänge. Insbesondere bei der Verarbeitung von Abfragenergebnissen ist die Kombination aus MySQLI_Result -Objekt, Fetch_assoc () -Methode und während Schleife eine effiziente und gemeinsame Traversalmethode. Dieser Artikel enthält Einzelheiten zur korrekten Verwendung und Überlegungen und Beispielcode.
Wenn Sie eine ausgewählte Abfrage mit MySQLI_Query () ausführen, ist das zurückgegebene Ergebnis ein MySQLi_Result -Objekt. Dieses Objekt enthält alle Datenreihen, die von der Abfrage zurückgegeben wurden. Um auf diese Daten zuzugreifen, müssen Sie eine spezielle Methode wie Fetch_assoc () verwenden.
fetch_assoc () ist eine Methode von MySQLI_Result . Es wird verwendet, um die nächste Zeile aus dem Ergebnissatz herauszunehmen und ein assoziatives Array zurückzugeben. Der Schlüssel des Arrays ist der Feldname und der Wert ist der entsprechende Feldwert. Jeder Anruf bewegt eine Zeile nach unten, bis keine weiteren Zeilen null zurückkehren.
Im Allgemeinen werden wir eine Weile Schleife verwenden, kombiniert mit fetch_assoc () , um die Daten in der Ergebniszeile für Zeile zu erhalten. Dies liegt daran, dass Fetch_assoc () jeweils nur eine Zeile zurückgibt und kontinuierliche Anrufe erfordert, um alle Zeilen zu vervollständigen.
Beispielcode:
<?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
// Überprüfen Sie die Verbindung
if ($mysqli->connect_error) {
die('Verbindung ist fehlgeschlagen: ' . $mysqli->connect_error);
}
// Eine Frage ausführen
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);
if ($result instanceof mysqli_result) {
// Ergebnissergebnisse
while ($row = $result->fetch_assoc()) {
echo 'ID: ' . $row['id'] . '<br>';
echo 'Name: ' . $row['name'] . '<br>';
echo 'Post: ' . $row['email'] . '<br>';
echo '<a href="https://m66.net/user/' . $row['id'] . '">Überprüfen Sie die Details</a><br><br>';
}
// Füllen Sie das Ergebnissatz frei
$result->free();
} else {
echo 'Abfrage fehlgeschlagen: ' . $mysqli->error;
}
// Schließen Sie die Verbindung
$mysqli->close();
?>
? Überprüfen Sie, ob die Abfrage erfolgreich ist <br> Stellen Sie vor dem Aufrufen von $ result-> fetch_assoc () sicher, dass $ result in der Tat ein MySQLi_Result- Objekt ist, nicht falsch .
? Release -Ergebnis -Set <br> Rufen Sie nach dem Durchqueren $ result-> Free () auf, um die Ressource zu veröffentlichen, um Speicherleckage zu vermeiden.
? Schließen Sie die Datenbankverbindung <br> Rufen Sie nach der Verwendung der Datenbank $ mysqli-> close () auf, um die Verbindung zu schließen.
? Verhindern SQL Injection <br> Wenn Benutzereingaben in die Abfrage beteiligt sind, wird dringend empfohlen, Vorverarbeitungsanweisungen ( vorbereiten + bind_param ) zu verwenden, anstatt die Zeichenfolge direkt zu spleißen.