2013-10-20 104 views
1

我想查看基於使用PHP的SQL查詢有多少行。計算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"]; 
    } 

任何人都知道爲什麼,它不會返回的行數?

+1

你爲什麼用'mysql_num_rows'了'mysqli_query'? –

+1

'mysql_num_rows'不是MySQLi函數... – alfasin

回答

4

您正在使用MySQLi。由於您沒有mysql查詢,mysql_num_rows不會返回所需的值。 你有mysqli的等於代替你的mysql功能:

$num_rows = mysqli_num_rows($result); 
+0

感謝堆,這解決了我的問題..這麼簡單! – Aaron

1

您正在使用Mysqli你應該使用mysqli_num_rows

$結果= mysqli_query($ CON,「SELECT * FROM MyTable的WHERE測試= '123'AND test2 ='456'「); $ num_rows = mysqli_num_rows($ result);

如果只想count,那麼你可以直接使用count(*)這樣的: -

$結果= mysqli_query($ CON,「SELECT COUNT(*)FROM MyTable的WHERE測試= '123' AND TEST2 = '456'「);

echo $ result;

1

我會做一些這樣的事:

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