美文网首页
Mysql Pdo连接

Mysql Pdo连接

作者: lifefruity | 来源:发表于2019-08-25 22:17 被阅读0次
    1. 如何出现 MySQL server has gone away
      用第3中的方法
    1. 代码中如何使用长连接和短连接
      PDO::ATTR_PERSISTENT:当前对Mysql服务器的连接是否是长连接

    什么情况下使用长连接?
    不同的脚本的执行间距非常短,同时每个脚本都要操作数据库(Mysql:mysql_pconnect())
    虽然PHP是解析的,也没有像容器之类的东西,但这个长连接是由扩展库维护的,也相当于有一个数据库连接线程池,页面的数据库请求需要的时候就从池里获取。

    1. 会话过期
      如果mysql的配置中这样设置
      wait_timeout=10//貌似SHOW VARIABLES LIKE '%timeout%';不会改变。SHOW GLOBAL VARIABLES LIKE '%timeout%';就是改变的了
      interactive_timeout=10,//这个修改的会变
      那么下面sleep(2)毫无问题,会一直打印数据库内容,如果sleep(11),那就只打印一次,然后就MySQL server has gone away
    <?php
    $dbh = new PDO('mysql:host=localhost;dbname=jack', 'root', '');  
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    
    
    while(1){
        $sql = "select * from users";
        $stmt = $dbh->prepare($sql);  
        $stmt->execute();  
    
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)){    
            echo $row['name'].' - '.date("Y-m-d H:i:s")."\n"; 
        }   
        sleep(2);
    }
    

    相关文章

      网友评论

          本文标题:Mysql Pdo连接

          本文链接:https://www.haomeiwen.com/subject/losxectx.html