Existe-t-il un équivalent à la fonction mysql_result() de MySQLi ?
Lors du processus de migration du code PHP de MySQL vers MySQLi, les développeurs rencontrent souvent l'absence de la fonction mysql_result(). Bien qu'il soit reconnu que mysql_result() devient moins efficace lors de la gestion de plusieurs lignes, sa commodité pour les scénarios impliquant un seul résultat et un seul champ est indéniable.
Exprimée à l'origine dans l'extrait de code suivant :
if ($r && mysql_num_rows($r)) $blarg = mysql_result($r, 0, 'blah');
L'équivalent MySQLi souhaité prendrait la forme :
if ($r && $r->num_rows) $blarg = $r->result(0, 'blah');
Cependant, une telle fonction n'existe pas dans MySQLi répertoire par défaut.
Répondre au vide
Pour combler cette lacune, une fonction personnalisée a émergé qui reproduit la fonctionnalité de 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; }
Cette fonction conserve la commodité inhérente de mysql_result() en employant la syntaxe identique. Il renvoie false si la ligne ou le champ spécifié se situe en dehors du jeu de résultats, garantissant ainsi une récupération fiable des données. De plus, il prend en charge à la fois les décalages de champs numériques et les noms de champs pour une flexibilité accrue.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!