Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 持久连接:MySQL找到了_行()结果_Php_Mysql_Pdo_Persistent - Fatal编程技术网

Php 持久连接:MySQL找到了_行()结果

Php 持久连接:MySQL找到了_行()结果,php,mysql,pdo,persistent,Php,Mysql,Pdo,Persistent,作为背景,在MySQL中,通过SQL_CALC_FOUND_ROWS标志和FOUND_ROWS()函数,MySQL允许您检索在SELECT未使用限制时将返回的行总数,而无需发出第二个繁重的查询: $query = "SELECT SQL_CALC_FOUND_ROWS * from movies WHERE.... LIMIT 20"; $res1 = $db->query($query); $numrows = $db->query

作为背景,在MySQL中,通过SQL_CALC_FOUND_ROWS标志和FOUND_ROWS()函数,MySQL允许您检索在SELECT未使用限制时将返回的行总数,而无需发出第二个繁重的查询:

$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个到数据库的同时连接

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