zoukankan      html  css  js  c++  java
  • Swoole 异步mysql使用

    <?php
    class mysql {
        private $param;
        public $db;
        public function __construct() {
            $this->db = new swoole_mysql;
            $this->param = array(
                'host' => '127.0.0.1',
                'user' => 'root',
                'password' => '123',
                'database' => 'test',
            );
        }
    
        public function exec($sql) {
            $this->db->connect($this->param, function ($db, $result) use ($sql) {
                if ($result === false) {
                    echo "连接数据库失败 : 错误代码:" . $db->connect_errno . PHP_EOL . $db->connect_error;
                    return false;
                }
                $db->query($sql, function ($db, $res) {
                    if ($res === false) {
                        // error属性获得错误信息,errno属性获得错误码 
                        echo "sql语句执行错误 : " . $db->error;
                    } else if ($res === true) {
                        // 非查询语句  affected_rows属性获得影响的行数,insert_id属性获得Insert操作的自增ID 
                        echo "sql语句执行成功,影响行数 : " . $db->affected_rows;
                        
                    } else {
                        //查询语句  $result为结果数组 
                        var_dump($res);
                        
                    }
                    $db->close();
                });
            });
        }
    }
    
    $mysql = new mysql();

    使用异步mysql好处 : 

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

    适用场合:

    • 不涉及共享资源,或对共享资源只读,即非互斥操作
    • 没有时序上的严格关系
    • 不需要原子操作,或可以通过其他方式控制原子性
    • 常用于IO操作等耗时操作,因为比较影响客户体验和使用性能
    • 不影响主线程逻辑
  • 相关阅读:
    JS从后台获取数据,前台动态添加tr标签中的td标签
    Java方式导出EXCEL表格
    框架搭建相关博文
    Spring框架相关博文集
    Eclipse相关工具使用
    关于Spring Boot的博客集合
    Springboot spring data jpa 多数据源的配置01
    springboot1.X 到2.X 的改变
    Spring-Boot devtools项目自动重启
    JSR 303
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9276246.html
Copyright © 2011-2022 走看看