1

我正在尝试根据使用 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"];
   }

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

4

3 回答 3

4

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

$num_rows = mysqli_num_rows($result);
于 2013-10-20T06:46:29.550 回答
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'");

回显$结果;

于 2013-10-20T06:48:26.130 回答
1

我会做这样的事情:

$result = mysqli_query($con,"SELECT COUNT(*) FROM MyTable WHERE test='123' AND test2='456'");
echo $result
于 2013-10-20T06:51:58.343 回答