• 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操作等耗时操作,因为比较影响客户体验和使用性能
    • 不影响主线程逻辑
  • 相关阅读:
    Spring+redis整合遇到的问题集以及注意事项
    Map源码学习之HashMap
    评分---五星好评
    下拉复选框
    倒计时按钮—获取手机验证码按钮
    input上传文件个数控制
    ajax请求完之前的loading加载
    获取浏览器滚动距离
    获取浏览器可视区域宽高
    获取元素尺寸宽高
  • 原文地址:https://www.cnblogs.com/jiangshiguo/p/12690026.html
Copyright © 2020-2023  润新知