首页 > 后端开发 > php教程 > 为什么在查询数据库时出现'尝试访问 Null 类型值的数组偏移”错误?

为什么在查询数据库时出现'尝试访问 Null 类型值的数组偏移”错误?

Mary-Kate Olsen
发布: 2024-11-11 16:27:03
原创
960 人浏览过

Why Do I Get the

修复“尝试访问 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板