【发布时间】:2011-10-28 20:00:32
【问题描述】:
我正在运行由几个内部查询构建的相当复杂的查询。该查询在其开头包含 SQL_CALC_FOUND_ROWS。不幸的是,只能获取行数(我无法获取结果本身)。
我决定摆脱 SQL_CALC_FOUND_ROWS 并运行两个不同的查询,一个计算行数,第二个获取它们。在这种情况下,我可以检索结果,但 COUNT(*) 查询的行为很奇怪。我就是这样做的:
- 执行 COUNT(*) 查询
- mysql_query() 返回 FALSE
- mysql_error() 在 COUNT(*) 查询返回空字符串后直接运行
代码是:
$sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
$resultCount = mysql_query($sqlCount);
echo "RESULT COUNT: " . ($resultCount === FALSE) . "<br />";//it returns 1(true)
echo mysql_error(); //it returns nothing (blank string)
另外 mysql_errno() 返回 0
对于这种奇怪的情况,你能找到合理的解释吗?
【问题讨论】:
-
请贴出代码以更恰当地帮助您。
-
请给我们看一些实际的 PHP 代码。
-
$resultCount=mysql_fetch_array(mysql_query($sqlCount));回声“结果计数:”。 $resultCount[0];
-
你是先用
mysql_connect吗? -
您是否启用了完整的错误报告?许多 PHP 函数倾向于在满足错误条件时抛出警告,并且它们通常提供无法在其他任何地方收集的信息。