首页 > 解决方案 > 致命错误:未捕获的类型错误:mysqli_fetch_assoc()

问题描述

我的代码:

    $zaman = '%'.date('Y-m-d').'%';
    $Sorgu = mysqli_query($link, "SELECT COUNT( * ) AS sayi, ip 
      FROM visitors 
      WHERE zaman LIKE '$zaman' 
      AND sayfa LIKE '%admin%'
      GROUP BY ip ORDER BY sayi ASC");
    
    while($X = mysqli_fetch_assoc($Sorgu)){
        if($X[sayi] > 2) echo $X[ip].' ip address '.$X[sayi].' <br>';
    }

但我收到以下错误。

致命错误:未捕获的类型错误:mysqli_fetch_assoc():参数 #1 ($result) 必须是 mysqli_result 类型,/home/xxxxxxx/public_html/ip.php:28 中给出的布尔型堆栈跟踪:#0 /home/xxxxxxx/public_html/ ip.php(28): mysqli_fetch_assoc(false) #1 {main} 在第 28 行的 /home/xxxxxxx/public_html/ip.php 中抛出

我怎么解决这个问题?

标签: phpmysqliphp-8

解决方案


错误本身说 Argument #1 ($result) must be of type mysqli_result, bool given, 也就是说你 while($X = mysqli_fetch_assoc($Sorgu)){使用 $Sorgu 的代码是 bool 类型并且应该是 mysqli_result,这意味着你的最后一个查询导致 bool,你应该更正查询或在while循环之前,您应该检查结果类型不是布尔型,希望这会有所帮助


推荐阅读