Heim >Datenbank >MySQL-Tutorial >„bind_result' vs. „get_result': Welche MySQLi-Methode sollte ich zum Abrufen von Abfrageergebnissen verwenden?

„bind_result' vs. „get_result': Welche MySQLi-Methode sollte ich zum Abrufen von Abfrageergebnissen verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-12-13 03:28:10617Durchsuche

`bind_result` vs. `get_result`: Which MySQLi Method Should I Use for Retrieving Query Results?

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:

  • Kompatibel mit veralteten PHP-Versionen
  • Returns separat Variablen

Nachteile von bind_result:

  • Manuelle Auflistung aller erforderlichen Variablen
  • Erfordert mehr Code, um die Zeile als zurückzugeben Array
  • Der Code muss bei der Tabellenstruktur aktualisiert werden Änderungen

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:

  • Gibt assoziative/ Aufgezähltes Array oder Objekt, das automatisch mit Daten gefüllt wird
  • Ermöglicht der Methode fetch_all(), alle zurückgegebenen Zeilen zurückzugeben einmal

Nachteile von get_result:

  • Erfordert nativen MySQL-Treiber (mysqlnd)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn