Maison  >  Article  >  développement back-end  >  Comment appeler une procédure stockée dans Swoole

Comment appeler une procédure stockée dans Swoole

PHPz
PHPzoriginal
2023-03-29 11:28:46409parcourir

Swoole est un framework de communication réseau hautes performances largement utilisé. Il est souvent utilisé pour développer des serveurs Web, des serveurs de jeux en ligne et divers services IO asynchrones. Dans l'écosystème de Swoole, l'appel de procédures stockées est une fonctionnalité très importante qui peut grandement améliorer les performances des applications Web. Cet article explique comment appeler des procédures stockées dans Swoole.

1. Qu'est-ce qu'une procédure stockée ?

Une procédure stockée est un programme dans un système de gestion de base de données conçu pour implémenter un ensemble complexe d'opérations SQL. Une procédure stockée peut être considérée comme une fonction d'une instruction SQL, qui peut accepter des paramètres, effectuer une série d'opérations et renvoyer des résultats. Les procédures stockées sont généralement utilisées pour effectuer des opérations de base de données complexes, telles que des calculs de données complexes, le traitement et l'analyse de données.

Les avantages de l'utilisation de procédures stockées sont évidents, car elles peuvent réduire les communications réseau et la surcharge du serveur de base de données, et améliorer la vitesse et l'efficacité des opérations de base de données.

2. Comment appeler des procédures stockées dans Swoole

1. Installer l'extension PHP

Pour appeler des procédures stockées dans Swoole, vous devez d'abord installer l'extension de base de données PHP. Nous pouvons utiliser la commande suivante pour installer l'extension swoole_mysql :

pecl install swoole_mysql

2. Connectez-vous à la base de données

Avant d'utiliser Swoole pour appeler la procédure stockée, nous devons d'abord nous connecter à la base de données MySQL. La connexion à la base de données peut utiliser l'une des extensions MySQLi ou l'extension PDO. Une fois la connexion établie, vous pouvez utiliser la fonction de requête MySQL fournie par Swoole pour envoyer des requêtes SQL.

Voici un exemple de connexion à une base de données MySQL :

$db = new mysqli('localhost', 'user', 'password', 'database');
if($db->connect_errno) {
    die('MySQL连接失败:' . $db->connect_error);
}

3 Définir la procédure stockée

Avant d'appeler la procédure stockée dans Swoole, vous devez définir la procédure stockée. Pour définir une procédure stockée, vous devez utiliser l'instruction CREATE PROCEDURE. Par exemple, voici un exemple de procédure stockée :

CREATE PROCEDURE `user_login`(IN user_name varchar(50), IN user_password varchar(255), OUT result int)
BEGIN
    SELECT COUNT(*) INTO result FROM users WHERE user_name = user_name AND user_password = user_password;
END

Cet exemple de procédure stockée s'appelle user_login et doit accepter deux paramètres : user_name et user_password. Le but de la procédure stockée est de vérifier si le nom d'utilisateur et le mot de passe donnés correspondent et de stocker le résultat dans le paramètre result.

4. Appeler des procédures stockées

Swoole fournit une fonction appelée swoole_mysql_query, qui peut être utilisée pour exécuter des requêtes MySQL. La fonction est asynchrone et peut gérer d'autres requêtes pendant l'exécution. Voici un exemple :

$db = new Swoole\Coroutine\MySQL();
$db->connect([
    'host' => 'localhost',
    'user' => 'user',
    'password' => 'password',
    'database' => 'database',
]);
$result = null;
$db->query("CALL user_login('user', 'password', @result)");
$ret = $db->query("SELECT @result");
var_dump($ret);

Dans cet exemple, nous nous connectons d'abord à la base de données MySQL, puis appelons la procédure stockée user_login à l'aide de la fonction de requête. Une fois l’exécution de la procédure stockée terminée, nous utilisons une autre fonction de requête pour récupérer les résultats.

5. Exemple complet

Ce qui suit est un exemple de programme complet permettant à Swoole d'appeler une procédure stockée :

<?php
/**
 * Swoole调用存储过程
 */

//连接MySQL数据库
$db = new mysqli(&#39;localhost&#39;, &#39;user&#39;, &#39;password&#39;, &#39;database&#39;);
if($db->connect_errno) {
    die('MySQL连接失败:' . $db->connect_error);
}

//定义存储过程
$query = <<<EOT
CREATE PROCEDURE `user_login`(IN user_name varchar(50), IN user_password varchar(255), OUT result int)
BEGIN
    SELECT COUNT(*) INTO result FROM users WHERE user_name = user_name AND user_password = user_password;
END
EOT;
$db->query($query);

//调用存储过程
$result = null;
$db->query("CALL user_login('user', 'password', @result)");
$ret = $db->query("SELECT @result");
var_dump($ret);

//关闭连接
$db->close();

Dans cet exemple, nous nous connectons d'abord à la base de données MySQL, puis définissons la procédure stockée user_login. Enfin, nous appelons la procédure stockée à l'aide de l'instruction CALL et récupérons les résultats à l'aide de l'instruction SELECT.

3. Résumé

Dans cet article, nous avons présenté la méthode d'appel de procédures stockées dans Swoole. Pour les applications Web qui doivent effectuer des opérations de base de données complexes, les procédures stockées constituent un moyen utile d'accélérer les opérations de base de données. Les fonctionnalités d'E/S asynchrones et hautes performances de Swoole peuvent être combinées avec des procédures stockées pour obtenir des opérations de base de données plus efficaces.

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