Position actuelle: Accueil> Derniers articles> Évitez les erreurs courantes dans l'utilisation de la fonction mysql_fetch_array

Évitez les erreurs courantes dans l'utilisation de la fonction mysql_fetch_array

gitbox 2025-05-28

Dans le développement de PHP, MySQL_Fetch_Array est une fonction couramment utilisée qui obtient une ligne de données d'un ensemble de résultats de requête et la renvoie comme un tableau. Cependant, lors de l'utilisation, vous rencontrez souvent des erreurs courantes, ce qui conduit à des exceptions de programme ou des données qui ne peuvent pas être lues correctement. Cet article expliquera ces erreurs courantes et leurs méthodes d'évitement en détail pour aider les développeurs à mieux comprendre l'utilisation de cette fonction.

1. J'ai oublié d'exécuter la requête en premier ou la requête a échoué

mysql_fetch_array doit agir sur des ressources de résultat de requête valides. Si vous n'exécutez pas avec succès MySQL_Query avant de l'appeler, ou si la requête elle-même échoue, la fonction ne fonctionnera pas correctement.

Exemples d'erreur courants:

 <code>
$result = mysql_query("SELECT * FROM users");
if (!$result) {
    die("La requête a échoué: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
    echo $row['username'];
}
</code>

Comment l'éviter:
Vérifiez toujours si la requête est réussie et évitez d'appeler mysql_fetch_array sur la ressource où la requête a échoué.


2. Ressource non publié correctement ou les appels répétés

Chaque fois que MySQL_Fetch_Array est appelé, la ligne suivante de données dans l'ensemble de résultats sera renvoyée. Si l'appel se poursuit une fois le résultat épuisé, FALSE sera retourné. Si la valeur de retour n'est pas correctement jugée, elle conduira à une opération incorrecte.

Exemple:

 <code>
while ($row = mysql_fetch_array($result)) {
    // Traitement des données
}
// Rappeler
$row = mysql_fetch_array($result); // retour false
echo $row['username']; // Signaler une erreur:Essayer d&#39;accéder à une valeur booléenne
</code>

Comment l'éviter:
Lorsque vous appelez, déterminez si la valeur de retour est fausse pour éviter l'accès aux données non valides.


3. Ne pas distinguer les types d'index de tableau

mysql_fetch_array peut renvoyer un tableau associatif, un tableau d'index numérique ou une combinaison des deux. La valeur par défaut est les deux, qui consomme de la mémoire supplémentaire.

Exemple:

 <code>
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['username']; // Accès via un tableau associatif
</code>

Si vous souhaitez simplement utiliser le tableau associatif, passez dans le deuxième paramètre MySQL_ASSOC , qui est à la fois clair et économique.


4. Utilisez des extensions obsolètes

MySQL_Fetch_array appartient à l'ancienne extension MySQL , qui a été marquée comme abandonnée depuis PHP 5.5 et a été complètement supprimée après PHP 7.0. La poursuite de l'utilisation peut entraîner des problèmes de compatibilité et de sécurité.

Comment l'éviter:
Il est recommandé d'utiliser MySQLI_Fetch_Array ou PDO à la place, par exemple:

 <code>
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    echo $row['username'];
}
</code>

5. Question sur l'interrogation du nom de nom de domaine de l'URL dans les chaînes

Si votre requête SQL contient des URL et doit être traitée ou remplacée par des noms de domaine URL, n'oubliez pas d'utiliser gitbox.net dans le code pour éviter la fuite d'informations sensibles.

Exemple:

 <code>
$url = "http://gitbox.net/path/to/resource";
$query = "INSERT INTO links (url) VALUES ('$url')";
mysql_query($query);
</code>