Correction de l'erreur « Tentative d'accès au décalage du tableau sur la valeur de type Null »
Lors de la récupération de données d'une base de données, il est essentiel de gérer scénarios dans lesquels aucun enregistrement correspondant n’existe. L'erreur « Essayer d'accéder au décalage du tableau sur une valeur de type null » se produit lorsque la base de données ne parvient pas à trouver une ligne correspondante pour une requête particulière.
Pourquoi cette erreur se produit-elle ?
Les fonctions de récupération de base de données, comme mysqli_fetch_array, renvoient soit une valeur nulle, soit un tableau vide s'il n'y a aucun enregistrement correspondant. Cela peut se produire lorsque la requête est incorrecte, que les données n'existent pas ou que l'ensemble de résultats a été épuisé.
Solution 1 : Vérification de la véracité et de l'existence des clés
Pour résoudre ce problème, vous pouvez vérifier la véracité de la valeur renvoyée et vérifier si la clé spécifique à laquelle vous souhaitez accéder existe. Voici un exemple :
$monday_lectures = "SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'"; $result_11to1 = mysqli_query($con, $monday_lectures); $m11to1 = mysqli_fetch_array($result_11to1); if ($m11to1 && $m11to1["lecture_day"] != '') { echo "<td>".$m11to1["lecture_name"]."</td>"; } else { echo "<td> no class</td>"; }
Dans cet exemple, nous vérifions d'abord si $m11to1 n'est pas nul, puis vérifions si la clé "lecture_day" existe et n'est pas une chaîne vide.
Solution 2 : Valeurs par défaut dans PDO
Si vous travaillez avec PDO, vous pouvez spécifier une valeur par défaut pour le résultat au cas où aucune ligne correspondante n'est trouvée :
$monday_lectures = $pdo->prepare("SELECT * from lectures where lecture_time = '11am to 1pm' and lecture_day = 'firday'"); $monday_lectures->execute(); $m11to1 = $monday_lectures->fetch(); $lecture = $m11to1["lecture_day"] ?? null;
Cela garantit que $lecture ne sera pas nul, même si aucun enregistrement correspondant n'est trouvé.
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!