swoole 异步MYSQL

https://wiki.swoole.com/wiki/page/517.html

<?php

class AysMysql
{
    const CONFIG = [
        'host' => '10.200.**.***',
        'port' => 3306,
        'user' => '*',
        'password' => '***',
        'database' => '****_cms',
        'charset' => 'utf8', //指定字符集
        'timeout' => 2,  // 可选:连接超时时间(非查询超时时间),默认为SW_MYSQL_CONNECT_TIMEOUT1.0    ];
    public $db = null;

    function __construct()
    {
        $this->db = new swoole_mysql;
    }

    /**
     * 闭包里不好直接用变量,要用use
     * @return bool
     */
    public function execute($id, $username)
    {
        $this->db->connect(self::CONFIG, function ($db, $result) use ($id, $username) {
            if ($result === false) {
                var_dump($db->connect_errno, $db->connect_error);
                die;
            }
            $sql = 'show tables';
            $db->query($sql, function (swoole_mysql $db, $result) {
                //$result
                //select 查询返回是结果集
                // add del update 返回布尔值
                if ($result === false) {
                    var_dump($db->error, $db->errno);
                } elseif ($result === true) {
                    var_dump($db->affected_rows, $db->insert_id);
                }
                var_dump($result);
                $db->close();
            });
        });
        return true;
    }

}


$ws = new AysMysql();
$result = $ws->execute();
print_r($result.PHP_EOL);
echo 'start:'.PHP_EOL;

返回输出顺序可以看出:

1.execute的找到connect后直接返回return

2.业务的逻辑

3.execute里connect操作

运用场景:

1.用户页面浏览数据数(可异步)

2.操作日志等(可异步)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值