我正在运行由几个内部查询构建的非常复杂的查询。该查询在其开头包含 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
对于这种奇怪的情况,你能找到任何合理的解释吗?