致命错误:未捕获的类型错误: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>';
    }

但我收到以下错误

致命错误:Uncaught TypeError: MysqLi_fetch_assoc(): Argument #1 ($result) must be type MysqLi_result,bool given in /home/xxxxxxx/public_html/ip.PHP:28 Stack trace: #0 /home/xxxxxxx /public_html/ip.PHP(28): MysqLi_fetch_assoc(false) #1 {main} 在第 28 行的 /home/xxxxxxx/public_html/ip.PHP 中抛出

我该如何解决这个问题?

解决方法

错误本身说参数 #1 ($result) 必须是 mysqli_result 类型,给定布尔值, 那是你使用 $Sorgu 的代码 while($X = mysqli_fetch_assoc($Sorgu)){ 是 bool 类型,应该是 mysqli_result,这意味着你的最后一个查询结果是 bool,你应该更正查询或者在 while 循环之前你应该检查结果类型不是 bool,希望这会有所帮助