标签:php mysql pdo persistent
作为背景知识,在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,pdo,persistent 来源: https://codeday.me/bug/20190630/1331872.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。