swoole学习之mysql的error坑笔记

一、PHP Fatal error: Uncaught Error: Class ‘Swoole\Mysql’ not found in

错误分析

原代码

<?php

class MysqlService
{
    //定义一个变量
    public $dbSource = '';
    public $dbConfig = '';

    //定义构造函数
    public function __construct()
    {
        //实例化mysql服务
        $this->dbSource = new Swoole\Mysql;

        //配置mysql参数
        $this->dbConfig = array(
            'host' => '127.0.0.1',
            'port' => '3306',
            'user' => 'root',
            'password' => '123456',
            'database' => 'qipa250',
            'charset' => 'utf8',
        );
    }
}

//实例化类

$db = new MysqlService();

执行命令

php mysqlService.php

报错

PHP Fatal error:  Uncaught Error: Class 'Swoole\Mysql' not found in /data/web/swoole_mooc/io/mysqlService.php:14
Stack trace:
#0 /data/web/swoole_mooc/io/mysqlService.php(70): MysqlService->__construct()
#1 {main}
  thrown in /data/web/swoole_mooc/io/mysqlService.php on line 14

Fatal error: Uncaught Error: Class 'Swoole\Mysql' not found in /data/web/swoole_mooc/io/mysqlService.php:14
Stack trace:
#0 /data/web/swoole_mooc/io/mysqlService.php(70): MysqlService->__construct()
#1 {main}
  thrown in /data/web/swoole_mooc/io/mysqlService.php on line 14

在这里插入图片描述

这个错误是因为用了异步回调模块,swoole 4.3.0版本后已经移除了异步模块,所以会报错没有找到swoole_mysql模块,用Swoole\Mysql一样报错

在这里插入图片描述

解决方案

1、用Corotuine协程模块代替
2、回退到旧版本swoole(不推荐)

 $this->dbSource = new Swoole\Coroutine\MySQL();

二、PHP Fatal error: Uncaught Swoole\Error: operation not support (reactor is not ready)

这个错是因为没有用协程方式运行脚本,而直接用了php运行,需要在代码外面套个go(function(){ …这里写内容},才能正常运行!

<?php
class MysqlService
{

    //定义一个变量
    public $dbSource = '';
    public $dbConfig = '';

    //定义构造函数
    public function __construct()
    {
        //实例化mysql服务
        $this->dbSource = new Swoole\Coroutine\MySQL();

        //配置mysql参数
        $this->dbConfig = array(
            'host' => '127.0.0.1',
            'port' => '3306',
            'user' => 'root',
            'password' => '123456',
            'database' => 'qipa250',
            'charset' => 'utf8',
        );
    }

    public function execute()
    {
        // 连接
        go(function () {
            $this->dbSource->connect($this->dbConfig);
            $res = $this->dbSource->query('select * from qipa_member');
            if ($res === false) {
                return;
            }
            var_dump($res);
            // 关闭连接
            $this->dbSource->close();
        });
    }

}
//实例化类
$db = new MysqlService();
$db->execute();

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值