我一直收到错误消息:
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
}
}
?>
答案 0 :(得分:1)
您应该在MySQL命令行中或通过像Navicat Lite这样的SQL客户端测试您的查询。至于PHP,我建议使用面向对象的样式。比程序风格更容易使用。 (http://www.php.net/manual/en/mysqli.query.php)。
但是,对于num_rows检查,我建议使用“if(!empty($ number))”以防它返回FALSE或其他错误。 (http://www.php.net/manual/en/mysqli-result.num-rows.php)
您不需要在fetch_array函数中指定第二个参数,因为您使用的值是它默认的值。我会将你的代码更改为...
$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
}
}