Gateway/Worker模型 数据库使用示例

安装

具体安装使用参见 Workerman手册 Workerman/MySQL

使用示例

项目/Events.php

  1. <?php
  2. use \GatewayWorker\Lib\Gateway;
  3. require_once '/your/path/of/mysql-master/src/Connection.php';
  4. /**
  5. * 数据库示例,假设有个your_db_name库,里面有个user表
  6. */
  7. class Events
  8. {
  9. /**
  10. * 新建一个类的静态成员,用来保存数据库实例
  11. */
  12. public static $db = null;
  13. /**
  14. * 进程启动后初始化数据库连接
  15. */
  16. public static function onWorkerStart($worker)
  17. {
  18. self::$db = new Workerman\MySQL\Connection('host', 'port', 'user', 'password', 'db_name');
  19. }
  20. /**
  21. * 有消息时触发该方法,根据发来的命令打印2个用户信息
  22. * @param int $client_id 发消息的client_id
  23. * @param mixed $message 消息
  24. * @return void
  25. */
  26. public static function onMessage($client_id, $message)
  27. {
  28. // 发来的消息
  29. $commend = trim($message);
  30. if($commend !== 'get_user_list')
  31. {
  32. Gateway::sendToClient($client_id, "unknown commend\n");
  33. return;
  34. }
  35. // 使用数据库实例
  36. self::$db->select('*')->from('users')->where('uid>3')->offset(5)->limit(2)->query();
  37. // 打印结果
  38. return Gateway::sendToClient($client_id, var_export($ret, true));
  39. }
  40. }