连接mysql

j18750

在Events.php 的Events类下面增加了 onWorkerStart方法连接MySQL后启动服务报错了

  public static function onWorkerStart($worker)
   {
      global $db;
    $db = new \Workerman\MySQL\Connection('127.0.0.1', '3306', 'root', '123456', 'delicacy');
   }

图片
 

2703 3 0
3个回答

blogdaren

这个需要手动把类require_once进来或者利用自动加载机制加载进来

  • j18750 2018-12-15

    引进来了,这个问题解决了,但是执行sql报报错了,说$db没定义

j18750
 public static function onWorkerStart($worker)
   {
      global $db;
    $db = new \Workerman\MySQL\Connection('127.0.0.1', '3306', 'root', '123456', 'delicacy');
   }

在这个方法中声明了全局的$db,然后在onMessage方法中使用$db为什么会报$db没有定义呢?

 public static function onMessage($client_id, $message)
   {
   
        //查询数据库
        // $db->query("SELECT ID,Sex FROM `Persons` WHERE sex='M' AND ID = 1");
        // $db = new \Workerman\MySQL\Connection('127.0.0.1', '3306', 'root', '123456', 'delicacy');  
        $data = $db->query("select cno,cname from u_user");
        Gateway::sendToClient($client_id,json_encode($data));
        print_r($data);
 
   }
  • blogdaren 2018-12-15

    onMessage 方法中也必须使用 global $db;

henry

楼主,这个问题你解决了吗?

  • 暂无评论
年代过于久远,无法发表回答
🔝