返回介绍

1.15.4.2 react/mysql(异步)

发布于 2020-05-17 11:52:42 字数 2758 浏览 1063 评论 0 收藏 0

(要求Workerman版本>=3.3.6)

注意:

此组件是第三方组件,可能会有潜在的bug,建议使用WorkermanMySQL组件。

安装:

composer require react/mysql

示例:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use WorkermanWorker;

$worker = new Worker('text://0.0.0.0:6161');

// 进程启动时
$worker->onWorkerStart = function() {
    global $mysql;
    // 获得workerman的event-loop,
    $loop  = Worker::getEventLoop();
    // 连接参数
    $mysql = new ReactMySQLConnection($loop, array(
        'host'   => '127.0.0.1', // 不要写localhost
        'dbname' => '数据库名',
        'user'   => '用户名',
        'passwd' => '密码',
    ));
    // 出现错误时
    $mysql->on('error', function($e){
        echo $e;
    });
    // 执行连接
    $mysql->connect(function ($e) {
        if($e) {
            echo $e;
        } else {
            echo "connect successn";
        }
    });
};
// 收到客户端请求时
$worker->onMessage = function($connection, $data) {
    global $mysql;
    // 执行异步查询
    $mysql->query('show databases' /*$data*/, function ($command, $mysql) use ($connection) {
        if ($command->hasError()) {
            $error = $command->getError();
        } else {
            $results = $command->resultRows;
            $fields  = $command->resultFields;
            $connection->send(json_encode($results));
        }
    });
};

Worker::runAll();

文档:

https://github.com/bixuehujin/reactphp-mysql

注意:

1、所有的异步编码必须在onXXX回调中编写

2、异步客户端需要的$loop变量请使用Worker::getEventLoop();返回值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文