修复“尝试访问 Null 类型值的数组偏移”错误
从数据库检索数据时,必须处理不存在匹配记录的场景。当数据库无法找到特定查询的匹配行时,会出现“尝试访问 null 类型值的数组偏移量”错误。
为什么会出现此错误?
数据库获取函数,如 mysqli_fetch_array,如果没有匹配的记录,则返回 null 值或空数组。当查询不正确、数据不存在或结果集已耗尽时,可能会发生这种情况。
解决方案 1:检查真实性和密钥是否存在
要解决此问题,您可以验证返回值的真实性,并检查您要访问的特定密钥是否存在。下面是一个示例:
$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>"; }
在这个示例中,我们首先检查 $m11to1 是否不为空,然后验证键“lecture_day”是否存在且不是空字符串。
解决方案 2:PDO 中的默认值
如果您使用 PDO,您可以为结果指定默认值,以防找不到匹配的行:
$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;
这可以确保 $lecture 不会为空,即使没有找到匹配的记录。
以上是为什么在查询数据库时出现'尝试访问 Null 类型值的数组偏移”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!