首页 文章

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

提问于
浏览
0

我正在尝试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

    只要表存在,您的代码就可以正常工作 .

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

    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 . 但是如果我拼错了表名,我可以重现你看到的错误 .

    因此请仔细检查您的表名是否正确 .

  • 0

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

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

  • 4

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

    <?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");
    
    // check first if there's an error in your query
    if ($mysqli->error) {
        die($mysqli->error);
    }
    
    $get_total_rows = $results->fetch_row(); //hold total records in variable
    var_dump($get_total_rows);   
    
    $mysqli->close();
    
  • 2

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

  • 2

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

    我能够通过在之前运行的查询结尾添加 $stmt->close(); 来解决它 .

  • 2

    我有同样的问题 .

    检查db中的存在表;

相关问题