如何使用php在sql表中显示行数?

时间:2018-09-08 11:13:08

标签: php mysql

我试图从sql查询的结果中获取行数,所以我首先连接到数据库,然后检查连接是否建立,最后我尝试计算行数,这是代码:

 <?php   
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "db_test";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);


    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
        $res = $conn->query('SELECT COUNT (id_offre) AS nb FROM offres');

        $data = $res->fetch();

        $nb = $data['nb'];

        echo $nb;
?>

我得到这些错误:

  

未捕获的错误:在布尔值上调用成员函数fetch()

     

在布尔值上调用成员函数fetch()

我使用echo检查'nb'值,这是什么问题?

2 个答案:

答案 0 :(得分:2)

您的查询失败,这使$conn->query()返回false

那么,为什么查询失败?

SQL不允许在函数名和括号之间使用空格,就像在COUNT ()中那样。

因此,如果您进行更改:

SELECT COUNT (id_offre) AS nb FROM offres

SELECT COUNT(id_offre) AS nb FROM offres

...应该可以。

注意:我强烈建议您阅读mysqli::error(),并在代码中添加一些错误处理。

答案 1 :(得分:-1)

<?php   
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "db_test";

    $conn = mysqli_connect($servername, $username, $password, $dbname);

    // Check connection
    if (! $conn) {
       die("Connection failed: " . mysqli_connect_error());
    }

    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: ".$conn - > connect_error);
    }
    $res = $conn->query('SELECT * FROM offres');
    $data_count = mysqli_num_rows($res);
    echo($data_count);

?> 

检查一下!