首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >FOUND_ROWS()一直返回0

FOUND_ROWS()一直返回0
EN

Stack Overflow用户
提问于 2009-06-20 02:05:15
回答 3查看 3.7K关注 0票数 3
代码语言:javascript
代码运行次数:0
运行
复制
$result = $db_con->query("SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10");

$count_result = $db_con->query("SELECT FOUND_ROWS() as totalcount");
$row = $count_result->fetch_assoc();
$total = $row['totalcount'];

即使$result中包含所有用户行,$total也始终返回0。

代码语言:javascript
代码运行次数:0
运行
复制
ini_set("mysql.trace_mode", "0");

我在这里通过搜索类似的Q找到了这个设置,但它没有解决我的问题。

当我在MySQL客户机中使用两个select语句时,它总是输出正确的计数。就是想不出怎么让它在我的php页面上工作。

PHP版本: 5.2.5 build 6 MySQL版本: 5.1.30

注意:我在这里提供的代码没有在我的实际项目中使用,但是,它确实举例说明了我无法检索总计数的问题。根据我所读到的关于found_rows()的内容,这段代码应该可以工作,但它不能。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-20 02:50:35

在php.net上,我发现有人可能也有同样的问题。他说的是一种可能发生的竞争条件:php.net。基本上,他通过临时锁定表来解决这个问题,代价是放慢速度。

票数 1
EN

Stack Overflow用户

发布于 2009-06-20 02:21:30

需要LIMIT 才能使found_rows()正常工作

在查询的末尾添加一个限制,即。

代码语言:javascript
代码运行次数:0
运行
复制
SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

FOUND_ROWS() --对于带有LIMIT子句的SELECT,如果没有LIMIT子句,则返回的行数

票数 1
EN

Stack Overflow用户

发布于 2009-06-20 02:20:57

我不确定您使用的是哪个数据库库,但看起来您正在尝试计算mysql数据库中php中select语句的行数。

你有没有试过在php中使用内置的mysql数据库函数?

代码语言:javascript
代码运行次数:0
运行
复制
$count_result = mysql_query("SELECT COUNT(*) as totalcount FROM users");
$row = mysql_fetch_array($count_result);

$total = $row['totalcount'];
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1020745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档