依赖的扩展
该mysql类依赖pdo和pdo_mysql两个扩展,缺少扩展会报Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in ....错误。
命令行运行php -m会列出所有php cli已安装的扩展
centos系统
PHP5.xyum install php-pdo
yum install php-mysql
PHP7.xyum install php70w-pdo_dblib.x86_64
yum install php70w-mysqlnd.x86_64
安装 Workerman/MySQL
方法1:
可以通过composer安装,命令行运行以下命令(composer源在国外,安装过程可能会非常慢)。composer require workerman/mysql
上面命令成功后会生成vendor目录,然后在项目中引入vendor下的autoload.php。require_once __DIR__ . '/vendor/autoload.php';
workerman调用数据库实例:use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onWorkerStart = function($worker)
{
// 将db实例存储在全局变量中(也可以存储在某类的静态成员中)
global $db;
$db = new \Workerman\MySQL\Connection('host', 'port', 'user', 'password', 'db_name');
};
$worker->onMessage = function($connection, $data)
{
// 通过全局变量获得db实例
global $db;
// 执行SQL
$all_tables = $db->query('show tables');
$connection->send(json_encode($all_tables));
};
// 运行worker
Worker::runAll();
更多workerman知识请关注workerman教程栏目。