PHP中的错误消息:mysqli_fetch_array()需要参数1

PHP中的错误消息:mysqli_fetch_array()需要参数1,php,mysql,error-handling,mysqli,Php,Mysql,Error Handling,Mysqli,我一直收到错误消息: Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in 我想尽一切办法让它消失,但似乎什么都不起作用。有什么帮助吗 <?php $query = "SELECT * FROM table WHERE today = 'No' AND number_of_addresses < 26 ORDER BY table_id DESC" ; $res

我一直收到错误消息:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
我想尽一切办法让它消失,但似乎什么都不起作用。有什么帮助吗

<?php
$query = "SELECT * FROM table WHERE today = 'No' AND number_of_addresses < 26 ORDER BY table_id DESC" ;
$result = mysqli_query($dbc, $query) or die("Error: ".mysqli_error($dbc)) ;
$number = mysqli_num_rows($result) ;

if ($number >= 1) {

    while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
        //Do stuff
    }

}
?>

您可能应该在MySQL命令行或通过SQL客户端(如Navicat Lite)测试查询。至于PHP,我建议使用面向对象风格。比程序风格更容易使用。()

但是,对于num_行检查,我建议使用“if(!empty($number)),以防返回FALSE或其他错误。()

您不需要在fetch_数组函数中指定第二个参数,因为您使用的值是默认值。我会把你的代码改成这个

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$sql = "SELECT * FROM table WHERE today = 'No' AND number_of_addresses < 26 ORDER BY table_id DESC";
$result = $mysqli->query($sql);

if (is_object($result) && !empty($result->num_rows)) {
  while ($row = $result->fetch_array()) {
    //Do stuff
  }
}
$mysqli=newmysqli(“本地主机”、“我的用户”、“我的密码”、“世界”);
$sql=“从表中选择*,其中今天=‘否’和地址数量<26个,按表id描述排列”;
$result=$mysqli->query($sql);
如果(是对象($result)&&&!空($result->num_行)){
而($row=$result->fetch_array()){
//做事
}
}

你打开数据库连接了吗?你能添加
//做些什么吗?@rinchik是的,我已连接到数据库。我只是简化了代码。@hek2mgl它正在做的就是打印出从数据库中检索到的信息query@three3您的表名真的是
table