计算SQL数据库中的行数

时间:2013-10-20 06:42:47

标签: php mysql

我正在尝试使用PHP查看基于SQL查询的行数。

我似乎能够查询数据库并从一行返回字段,但似乎无法根据同一查询找出有多少行。

<?php
    $host = 'localhost';
    $user = 'MyUsername';
    $pass = 'MyPassword';
    $database = 'MyDatabase';


    $con=mysqli_connect($host,$user,$pass ,$database);
    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $result = mysqli_query($con,"SELECT * FROM MyTable WHERE test='123' AND test2='456'");
    $num_rows = mysql_num_rows($result);
    echo "$num_rows Rows\n"; 

    mysqli_close($con);

      ?> 

它返回的全部是屏幕上的文字,没有开头的行数。

就像我说的,如果我尝试使用:

选择一行,同样的查询将起作用并返回一个值
while($row = mysqli_fetch_array($result))
   {
    echo $row["test"];
   }

任何人都知道为什么它不会返回行数?

3 个答案:

答案 0 :(得分:4)

您正在使用MySQLi。由于您没有mysql查询,mysql_num_rows不会返回所需的值。 你必须用mysqli equal:

替换你的mysql函数
$num_rows = mysqli_num_rows($result);

答案 1 :(得分:1)

您正在使用Mysqli,您应该使用mysqli_num_rows

  

$ result = mysqli_query($ con,“SELECT * FROM MyTable WHERE test ='123'AND test2 ='456'”);        $ num_rows = mysqli_num_rows($ result);

如果您只想count,那么您可以直接使用count(*),如下所示: -

  

$ result = mysqli_query($ con,“SELECT COUNT(*)FROM MyTable WHERE test ='123'AND test2 ='456'”);

     

echo $ result;

答案 2 :(得分:1)

我会做这样的事情:

$result = mysqli_query($con,"SELECT COUNT(*) FROM MyTable WHERE test='123' AND test2='456'");
echo $result