首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误--“尝试访问空类型值上的数组偏移量”

错误--“尝试访问空类型值上的数组偏移量”
EN

Stack Overflow用户
提问于 2020-04-19 10:20:45
回答 1查看 1.4K关注 0票数 0

我不断地得到错误:“试图访问null类型值上的数组偏移量”,位于定义会话变量的行中。我环顾了一下网页/栈和我的代码,我不知道哪里出了问题!这是我第一次从一个文档/代码页中的两个不同表中定义会话变量,因此我怀疑这与此有关。下面是发生错误的PHP代码:

代码语言:javascript
复制
<?php

    session_start();

    include('../includes/dbh.inc.php');


    $sql = 'SELECT * FROM shelfitems';
    $lqs = 'SELECT * FROM shelfwebsites';

    $result = mysqli_query($conn, $sql);
    $result2 = mysqli_query($conn, $lqs);

    $shelfitems = mysqli_fetch_all($result, MYSQLI_ASSOC);
    $shelfwebsites = mysqli_fetch_all($result2, MYSQLI_ASSOC);
    $shelfwebsite = mysqli_fetch_assoc($result2);
    $shelfitem = mysqli_fetch_assoc($result);

    $_SESSION['parent_id'] = $shelfitem['parent_id'];
    $_SESSION['folder'] = $shelfwebsite['folder'];
    $parent_id = $_SESSION['parent_id'];
    $folder = $_SESSION['folder'];
    mysqli_close($conn);
EN

回答 1

Stack Overflow用户

发布于 2020-04-19 22:14:14

问题是mysqli_fetch_assoc返回NULL。所以您的变量$shelfitem和$shelfwebsite是空的。

若要避免此错误,可以在获取之前检查是否有任何结果。

代码语言:javascript
复制
if (mysqli_num_rows($result) > 0) {
    $shelfitem = mysqli_fetch_assoc($result);

    $_SESSION['parent_id'] = $shelfitem['parent_id'];
}

https://www.php.net/manual/en/mysqli-result.fetch-assoc.php https://www.php.net/manual/en/mysqli-result.num-rows.php

UPD

结果可能为空的原因

  1. 您的sql查询没有找到任何内容。检查表是否已填充了已使用mysqli_fetch_all

读取$result的

我现在不能检查第二个原因,但是您可以尝试注释字符串并检查它是否有效。

代码语言:javascript
复制
$shelfitems = mysqli_fetch_all($result, MYSQLI_ASSOC);
$shelfwebsites = mysqli_fetch_all($result2, MYSQLI_ASSOC);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61302767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档