Heim >Datenbank >MySQL-Tutorial >„bind_result' vs. „get_result': Welche MySQLi-Methode sollte ich zum Abrufen von Abfrageergebnissen verwenden?
Auswahl zwischen bind_result und get_result
Beim Arbeiten mit vorbereiteten Anweisungen für Datenbankabfragen kann die Auswahl der geeigneten Methode zur Verarbeitung des Ergebnisses erhebliche Auswirkungen auf die haben Effizienz und Flexibilität Ihres Codes. In diesem Artikel werden die Unterschiede zwischen bind_result und get_result untersucht, zwei Methoden, die häufig zum Abrufen von Ergebnisdaten verwendet werden.
bind_result
bind_result ist ideal, wenn eine präzise Kontrolle über die Variablenzuweisung gewünscht wird. Durch die explizite Angabe der Variablen, die an jede Spalte gebunden werden sollen, wird sichergestellt, dass die Reihenfolge der Variablen genau mit der Struktur der zurückgegebenen Zeile übereinstimmt. Dieser Ansatz ist vorteilhaft, wenn die Struktur der zurückgegebenen Zeile im Voraus bekannt ist und der Code entsprechend angepasst werden kann.
$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query1); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Store the result (to get properties) */ $stmt->store_result(); /* Get the number of rows */ $num_of_rows = $stmt->num_rows; /* Bind the result to variables */ $stmt->bind_result($id, $first_name, $last_name, $username); while ($stmt->fetch()) { echo 'ID: '.$id.'<br>'; echo 'First Name: '.$first_name.'<br>'; echo 'Last Name: '.$last_name.'<br>'; echo 'Username: '.$username.'<br><br>'; }
Vorteile von bind_result:
Nachteile von bind_result:
get_result
get_result bietet eine vielseitigere Lösung für den Datenabruf. Es erstellt automatisch ein assoziatives/aufgezähltes Array oder Objekt, das die Daten aus der zurückgegebenen Zeile enthält. Diese Methode ist praktisch, wenn es um dynamische Ergebnisstrukturen geht oder wenn Flexibilität beim Datenzugriff unerlässlich ist.
$query2 = 'SELECT * FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query2); /* Binds variables to prepared statement i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets */ $stmt->bind_param('i',$id); /* execute query */ $stmt->execute(); /* Get the result */ $result = $stmt->get_result(); /* Get the number of rows */ $num_of_rows = $result->num_rows; while ($row = $result->fetch_assoc()) { echo 'ID: '.$row['id'].'<br>'; echo 'First Name: '.$row['first_name'].'<br>'; echo 'Last Name: '.$row['last_name'].'<br>'; echo 'Username: '.$row['username'].'<br><br>'; }
Vorteile von get_result:
Nachteile von get_result:
Fazit
Die Wahl zwischen bind_result und get_result hängt davon ab spezifische Anforderungen der Anwendung. bind_result bietet Präzision und Kontrolle über Ergebnisdaten, kann jedoch für dynamische Datenstrukturen umständlich sein. get_result bietet Flexibilität und Komfort, wird jedoch möglicherweise in älteren PHP-Versionen nicht unterstützt. Das Verständnis der Vorteile und Einschränkungen jeder Methode ermöglicht es Entwicklern, fundierte Entscheidungen beim Umgang mit Abfrageergebnissen zu treffen.
Das obige ist der detaillierte Inhalt von„bind_result' vs. „get_result': Welche MySQLi-Methode sollte ich zum Abrufen von Abfrageergebnissen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!