2011-07-29 34 views
1

我需要在執行查詢後檢索記錄的總數。我試過像這樣FOUND_ROWS()在PHP中失敗

<?php 
include_once 'common.php'; 

ini_set("mysql.trace_mode", "Off"); 

$sql ="get_list(0, 40, 'Name', 'DESC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; 

$con = mysqli_connect("localhost", "root", ""); 

mysqli_select_db($con, "crash_table"); 

mysqli_query($con, $sql); 

$sql2= "SELECT FOUND_ROWS();"; 

$result = mysqli_query($con, $sql2); 

$count = mysqli_fetch_array($result); 

echo "Count=".$count[0]; 

?> 

但是count總是0.在代碼中get_list()是一個過程,其中40是LIMIT ..爲什麼會這樣呢?

+0

的;在SQL語句的末尾搞亂了它? –

+0

@泰德:號。是可選的,但不受限制 – genesis

+0

這不是問題..我改變了.. – lavaira

回答

1

SELECT SQL_CALC_FOUND_ROWS你存儲過程中的最後一條語句嗎? 因爲手冊說:

可以通過FOUND_ROWS(行數)是短暫的,而不是 目的是供過往繼SELECT SQL_CALC_FOUND_ROWS語句後面的語句。

-1

您可以嘗試使用mysql_num_rows()來檢索條目數。使用SQL_CALC_FOUND_ROWS

0

實施例:

SELECT SQL_CALC_FOUND_ROWS [ FIELDS NAME ] FROM [ TABLE NAME ] WHERE ........ [ORDER BY] LIMIT [ X,Y ]; 

SELECT FOUND_ROWS();