致命错误:在布尔值上调用成员函数fetch_row()

时间:2016-03-21 02:48:05

标签: php mysqli

我正在尝试SELECT COUNT表的总记录,我做错了什么?提前谢谢

我收到此错误

  

致命错误:在布尔值

上调用成员函数fetch_row()
<?php

$mysqli = new mysqli('localhost','root','','testing');

//Output any connection error
if ($mysqli->connect_error) {
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

//get total number of records
$results = $mysqli->query("SELECT COUNT(*) FROM users");
$get_total_rows = $results->fetch_row(); //hold total records in variable

$mysqli->close();
?>

6 个答案:

答案 0 :(得分:5)

只要表存在,您的代码就能正常工作。

我创建了一个简单的表格如下:

mysql> create table users(a int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into users(a) values(1);
Query OK, 1 row affected (0.03 sec)

mysql> insert into users(a) values(3);
Query OK, 1 row affected (0.03 sec)

mysql> insert into users(a) values(5);
Query OK, 1 row affected (0.00 sec)  

在代码中插入一行:

echo $get_total_rows[0];

在屏幕上打印3。但是如果我拼错了表名,我可以重现你看到的错误。

请仔细检查您的表名是否正确。

答案 1 :(得分:2)

我敢打赌$results的值为FALSE,而不是结果集,因为我猜测你有一个SQL错误。尝试在SQL客户端中运行该语句,或者在线检查错误:

$results = $mysqli->query("SELECT COUNT(*) FROM users") or die($mysqli->error);

答案 2 :(得分:2)

在访问结果之前,您还可以先检查脚本是否有错误。

Double

答案 3 :(得分:2)

正如文档所述,mysqli :: query在失败时返回FALSE。所以你可以先通过mysql控制台检查你的SQL语句。

答案 4 :(得分:0)

我今天偶然发现了同样的错误,并通过搜索引擎发现了这个问题。

我能够通过在之前运行的查询末尾添加$stmt->close();来解决此问题。

答案 5 :(得分:0)

我有同样的问题。

  

检查db中是否存在表;