Gibt es ein Äquivalent zur mysql_result()-Funktion von MySQLi?
Bei der Migration von PHP-Code von MySQL nach MySQLi stoßen Entwickler häufig auf Folgendes das Fehlen der Funktion mysql_result(). Obwohl bekannt ist, dass mysql_result() bei der Verarbeitung mehrerer Zeilen weniger effizient wird, ist seine Bequemlichkeit für Szenarien mit einem einzelnen Ergebnis und Feld unbestreitbar.
Ursprünglich ausgedrückt im folgenden Codeausschnitt:
if ($r && mysql_num_rows($r)) $blarg = mysql_result($r, 0, 'blah');
Das gewünschte MySQLi-Äquivalent würde die Form annehmen:
if ($r && $r->num_rows) $blarg = $r->result(0, 'blah');
Eine solche Funktion existiert jedoch nicht in Das Standardrepertoire von MySQLi.
Die Lücke schließen
Um diese Lücke zu schließen, ist eine benutzerdefinierte Funktion entstanden, die die Funktionalität von mysql_result():
function mysqli_result($res, $row=0, $col=0) { $numrows = mysqli_num_rows($res); if ($numrows && $row <= ($numrows-1) && $row >=0) { mysqli_data_seek($res, $row); $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res); if (isset($resrow[$col])) { return $resrow[$col]; } } return false; }
Diese Funktion behält den inhärenten Komfort von mysql_result() bei, indem sie die identische Syntax verwendet. Es gibt „false“ zurück, wenn die angegebene Zeile oder das angegebene Feld außerhalb der Ergebnismenge liegt, wodurch ein zuverlässiger Datenabruf gewährleistet wird. Darüber hinaus werden sowohl numerische Feldversätze als auch Feldnamen berücksichtigt, um die Flexibilität zu erhöhen.
Das obige ist der detaillierte Inhalt vonGibt es ein MySQLi-Äquivalent zur mysql_result()-Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!