我不断地得到错误:“试图访问null类型值上的数组偏移量”,位于定义会话变量的行中。我环顾了一下网页/栈和我的代码,我不知道哪里出了问题!这是我第一次从一个文档/代码页中的两个不同表中定义会话变量,因此我怀疑这与此有关。下面是发生错误的PHP代码:
<?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);发布于 2020-04-19 22:14:14
问题是mysqli_fetch_assoc返回NULL。所以您的变量$shelfitem和$shelfwebsite是空的。
若要避免此错误,可以在获取之前检查是否有任何结果。
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
结果可能为空的原因
读取$result的
我现在不能检查第二个原因,但是您可以尝试注释字符串并检查它是否有效。
$shelfitems = mysqli_fetch_all($result, MYSQLI_ASSOC);
$shelfwebsites = mysqli_fetch_all($result2, MYSQLI_ASSOC);https://stackoverflow.com/questions/61302767
复制相似问题