2011-01-25 26 views

回答

17

: 我使用這個代碼,但它返回的資源ID#2。

使用類似mysql_fetch_assoc()的內容來獲取下一行。它返回一個列名稱爲索引的數組。在你的情況下,它可能是COUNT(*)

這裏有一個修復和您的片段的一些小的改進:

$rt = mysql_query("SELECT COUNT(*) FROM persons") or die(mysql_error()); 
$row = mysql_fetch_row($rt); 
if($row) 
    echo "<h1>Number:</h1>" . $row[0]; 

如果你需要得到結果集的所有行使用此代碼片段:

while($row = mysql_fetch_assoc($rt)) { 
    var_dump($row); 
} 
1

mysql_query返回一個資源對象。您需要首先從中獲取行(mysql_fetch_row)。

1

直接從PHP.net .......

「對於SELECT,SHOW,描述,解釋等語句返回的結果集,請求mysql_query()成功返回的資源,或者在錯誤FALSE。」

1

從文檔上mysql_query

對於SELECT,SHOW,描述,解釋 等語句返回的結果集 ,請求mysql_query()返回成功則 資源,或 錯誤FALSE。

2

mysql_query()沒有返回值,它返回一個資源(參見手冊中的here)。

返回的結果資源應該傳遞給另一個處理結果表的函數(如mysql_fetch_array()mysql_fetch_assoc()),以訪問返回的數據。

例如基於您最初的代碼:

$rt=mysql_query("SELECT COUNT(*) FROM persons"); 
while($row = mysql_fetch_assoc($rt)) { 
    var_dump($row); 
} 
3

試試這個:

$rt=mysql_query("SELECT COUNT(*) FROM persons"); 
echo mysql_error(); 
$count = mysql_result($rt, 0, 0); 
echo $count; 
3

在PHP中,resources從某些函數返回,以便他們可以傳遞給其他相關功能。示例包括數據庫連接,數據庫查詢結果,文件句柄等。

根據mysql_query()上的文檔,SELECT查詢返回資源。您可以獲取該資源並將其傳遞給許多不同的功能。要檢索行數,可以使用mysql_num_rows()來檢索查詢結果,可以使用mysql_fetch_array(),mysql_fetch_assoc()mysql_fetch_object()

與數據庫的處理結果將會是這個樣子正常模式:

$result = mysql_query("SELECT * FROM persons"); // run query against database 
$count = mysql_num_rows($result); // retrieve a count of the rows in the previous query 
while ($row = mysql_fetch_assoc($result)) { // loop through all the rows in the resultset 
    // use $row['column_name'] to access columns in your resultset 
} 

從你上面的例子:

$result = mysql_query("SELECT COUNT(*) AS num FROM persons"); // run query against db 
$row = mysql_fetch_assoc($result); // retrieve the 1 (and only) row 
$count = $row['num']; // we needed to alias the COUNT(*) column as `num`