簡體   English   中英

錯誤 - '試圖訪問 null 類型值的數組偏移量'

[英]Error - 'trying to access array offset on value of type null'

我不斷收到錯誤消息:在定義我的 session 變量的行處,“嘗試訪問 null 類型值的數組偏移量”。 我查看了 web/on stack 和我的代碼,但我無法找出問題所在,這是我第一次從一個文檔/代碼頁中的兩個不同表中定義 session 變量。 所以我懷疑這與此有關:下面是發生錯誤的 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);

問題是 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

結果可能為空的原因

  1. 您的 sql 查詢未找到任何內容。 檢查您的表格是否已填滿
  2. 您之前已經使用 mysqli_fetch_all 閱讀過 $result

我目前無法檢查第二個原因,但您可以嘗試評論字符串並檢查它是否有效

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM