为什么这会返回资源ID#2?

时间:2011-01-25 14:55:07

标签: php sql mysql

  

可能重复:
  How do i “echo” a “Resource id #6” from a MySql response in PHP?

我是php和SQL的新手,我正在尝试让php页面列出表格中的enries数量。 我正在使用此代码,但它返回资源ID#2:

$rt=mysql_query("SELECT COUNT(*) FROM persons");
echo mysql_error();
echo "<h1>Number:</h1>".$rt;

7 个答案:

答案 0 :(得分:17)

因为在执行mysql_query()时获得了mysql资源。

使用mysql_fetch_assoc()之类的内容获取下一行。它返回一个列名为index的数组。在你的情况下,它可能是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 :(得分:3)

试试这个:

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

答案 2 :(得分: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`

答案 3 :(得分: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);
}

答案 4 :(得分:1)

mysql_query返回一个资源对象。您需要先从中获取行(mysql_fetch_row)。

答案 5 :(得分:1)

直接来自PHP.net .......

“对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,如果出错则返回FALSE。”

答案 6 :(得分:1)

来自mysql_query的文档:

  

用于SELECT,SHOW,DESCRIBE,EXPLAIN   和其他声明返回   resultset,mysql_query()返回一个   成功的资源,或FALSE   错误。