zoukankan      html  css  js  c++  java
  • swoole异步操作mysql

    <?php
    class AysMysql{
        public $swoole_mysql;
        public $dbConfig = [];
        
        public function __construct(){
            $this->swoole_mysql = new swoole_mysql();//创建实例
            //连接配置
            $this->dbConfig = [
                'host'     => '122.51.29.205',
                'port'     => 3306,
                'user'     => 'root',
                'password' => 'root',
                'database' => 'ws',    
            ];
        }
        
        //实现数据操作
        public function excute($sql){
            //连接mysql
            $this->swoole_mysql->connect($this->dbConfig,function ($db,$res) use ($sql){
                if($res===false){
                    echo '数据库连接失败';
                    return;
                }
                
                //执行sql
                $db->query($sql,function ($db,$res2){
                    //对执行结果进行判断
                    if($res2===false){
                        echo 'SQL执行失败:'.$db->error.PHP_EOL;
                    }else if($res2===true){
                        //非查询语句执行
                        echo "sql语句执行成功,影响行数 : " . $db->affected_rows.PHP_EOL;
                    }else{
                        //查询语句打印
                        var_dump($res2);
                    }
                    //关闭链接
                    $db->close();
                });
            });
        }
    }
    
    $obj = new AysMysql();
    //拼写sql语句
    // $sql = "insert into user values(null,'test','123456','test@qq.com','18201119999',1)";
    // $sql = "select * from user";
    // $sql = "update user set username='test222' where id=15";
    $sql = "delete from user where id =14";
    $obj->excute($sql);

    使用异步mysql好处 : 

    • 防止代码阻塞,提高代码效率

    适用场合:

    • 不涉及共享资源,或对共享资源只读,即非互斥操作
    • 没有时序上的严格关系
    • 不需要原子操作,或可以通过其他方式控制原子性
    • 常用于IO操作等耗时操作,因为比较影响客户体验和使用性能
    • 不影响主线程逻辑
  • 相关阅读:
    CentOS下crond定时任务详细介绍
    js随机从数组中取出几个元素
    js复制内容加版权声明代码
    crond不执行原因分析
    2015年最全的移动WEB前端UI框架
    聊聊前端排序的那些事
    Linux下修改Mysql的用户(root)的密码
    SIPp常用脚本之三:UAC
    SIPp常用脚本之二:UAS
    SIPp常用脚本之一:register注册
  • 原文地址:https://www.cnblogs.com/jiangshiguo/p/12690026.html
Copyright © 2011-2022 走看看