2011-01-25 54 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`