Maison  >  Article  >  cadre php  >  Comment Workman appelle-t-il la base de données ?

Comment Workman appelle-t-il la base de données ?

尚
original
2019-12-23 16:43:183493parcourir

Comment Workman appelle-t-il la base de données ?

Extensions dépendantes

La classe mysql dépend de deux extensions, pdo et pdo_mysql Si l'extension est manquante, constante de classe non définie 'MYSQL_ATTR_INIT_COMMAND'. dans... erreur.

L'exécution de php -m à partir de la ligne de commande listera toutes les extensions installées par php cli

système centos

PHP5.x

yum install php-pdo
yum install php-mysql

PHP7.x

yum install php70w-pdo_dblib.x86_64
yum install php70w-mysqlnd.x86_64

Installer Workerman/MySQL

Méthode 1 :

peut être installé via composer et exécutez la commande suivante sur la ligne de commande (le la source du compositeur est à l'étranger, le processus d'installation peut être très lent).

composer require workerman/mysql

Une fois la commande ci-dessus réussie, le répertoire du fournisseur sera généré, puis autoload.php sous le fournisseur sera introduit dans le projet.

require_once __DIR__ . '/vendor/autoload.php';

workerman appelle l'instance de base de données :

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();

Pour plus de connaissances sur Workerman, veuillez faire attention à la colonne tutoriel Workerman.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn