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);

      ?> 

返されるのは、最初の行数のない、画面上のテキストRowsだけです。

私が言ったように、次を使用して行を選択しようとすると、この同じクエリが機能し、値を返します。

while($row = mysqli_fetch_array($result))
   {
    echo $row["test"];
   }

行数が返されない理由を知っている人はいますか?

4

3 に答える 3

4

MySQLi を使用しています。mysql クエリがないため、mysql_num_rows は目的の値を返しません。mysql 関数を mysqli equal に置き換える必要があります。

$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 に答える