微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 持久连接:MySQL FOUND_ROWS()结果

作为背景知识,在MySQL中,使用sql_CALC_FOUND_ROWS标志和FOUND_ROWS()函数,MysqL允许您检索如果SELECT没有使用LIMIT将返回的总行数,而不需要发出第二个重查询

$query =  "SELECT sql_CALC_FOUND_ROWS * from movies
            WHERE....
            LIMIT 20";
$res1 = $db->query($query);
$numrows = $db->query('SELECT FOUND_ROWS()')->fetchColumn();

这对于分页很有用.假设您正在使用持久连接:

try{
  $db = new PDO('MysqL:host=localhost;dbname=' . $dbname, $user, $pass,
        array( PDO::ATTR_PERSISTENT => true )
               );
etc.

如果两个用户几乎同时点击,那么请求是否可以跨越路径并且可以获得另一个请求的数据?

解决方法:

不,这不是问题.

就您的PHP页面而言,它在页面持续时间内具有自己的唯一连接.与非持久连接的持久连接的唯一区别是,在页面退出后,连接不会被拆除,而是放回池中以便移交到其他页面.换句话说,它不是共享连接,而是重用连接.如果有35个页面同时为页面请求提供服务,则仍会有35个同时连接到您的数据库.

但是,您必须小心传播连接状态(例如未完成的事务),但这是一个单独的问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐