Maison  >  Article  >  développement back-end  >  Comment remplacer la fonction `mysql_result()` de PHP par MySQLi ?

Comment remplacer la fonction `mysql_result()` de PHP par MySQLi ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-25 13:29:11893parcourir

How to Replace PHP's `mysql_result()` Function with MySQLi?

Comment répliquer la fonctionnalité de la fonction mysql_result() de PHP dans MySQLi

La fonction mysql_result(), couramment utilisée dans le code PHP existant, permet aux développeurs d'accéder rapidement à des données spécifiques à partir d'un résultat de requête MySQL. Cependant, cette fonction n'est pas nativement prise en charge dans MySQLi, l'extension améliorée et recommandée pour interagir avec les bases de données MySQL.

Approche alternative avec la récupération des lignes

Une approche courante pour récupérer les données des résultats de la requête MySQLi doivent récupérer la ligne correspondante à l'aide de la méthode fetch_assoc(). Voici un exemple :

if ($r && $r->num_rows) {
    $row = $r->fetch_assoc();
    $blarg = $row['blah'];
}

Cette approche implique plusieurs lignes et peut être moins efficace que l'utilisation d'une fonction dédiée comme mysql_result().

Fonction équivalente personnalisée

Pour reproduire la fonctionnalité de mysql_result() dans MySQLi, vous pouvez créer une fonction personnalisée comme indiqué ci-dessous :

function mysqli_result($res,$row=0,$col=0){ 
    $numrows = mysqli_num_rows($res); 
    if ($numrows &amp;&amp; $row <= ($numrows-1) &amp;&amp; $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 accepte les indices de lignes et de colonnes comme paramètres et renvoie les données correspondantes si elles existent. Il gère également les erreurs potentielles liées aux requêtes hors limites.

Utilisation :

La fonction mysqli_result() peut être utilisée de la même manière que mysql_result() :

if ($r && $r->num_rows)  
    $blarg = mysqli_result($r, 0, 'blah');

Avantages et Limitations

La fonction personnalisée mysqli_result() permet un code plus concis et réduit le nombre de lignes requises pour récupérer les données des résultats de requête MySQLi. Cependant, il convient de noter que cette fonction repose sur l'invocation de fonction dynamique de PHP et peut entraîner une légère pénalité de performances par rapport à l'implémentation originale de mysql_result().

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn