可能重复:
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;
答案 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 错误。