gpt4 book ai didi

php - 持久连接 : MySQL FOUND_ROWS() results

转载 作者:可可西里 更新时间:2023-11-01 07:35:39 25 4
gpt4 key购买 nike

作为背景知识,在 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 个同时连接到您的数据库。

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

关于php - 持久连接 : MySQL FOUND_ROWS() results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com