Maison  >  Article  >  base de données  >  Comment appeler une procédure stockée MySQL en PHP

Comment appeler une procédure stockée MySQL en PHP

PHPz
PHPzoriginal
2023-04-17 16:41:39803parcourir

MySQL et PHP sont des technologies souvent utilisées dans le développement Web. Parmi elles, les procédures stockées sont une fonctionnalité importante de MySQL. Dans cet article, nous présenterons les procédures stockées MySQL et les implémenterons en combinaison avec le langage PHP.

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

La procédure stockée MySQL est un bloc de code SQL réutilisable qui peut être défini et appelé dans le programme. C'est similaire à une fonction qui accepte des paramètres et renvoie une valeur. Les procédures stockées peuvent être stockées côté serveur MySQL et appelées à partir du code client.

  1. Avantages des procédures stockées
  • Améliore la réutilisabilité du code et évite les instructions SQL répétées ;
  • Améliore la sécurité des données et permet le contrôle d'accès via des procédures stockées ;
  • Augmente les performances, les procédures stockées L'exécution côté serveur réduit la communication réseau surcharge ;
  • peut réduire l'interaction avec la base de données et réduire la charge sur la base de données en appelant plusieurs instructions SQL à la fois.
  1. Syntaxe de base des procédures stockées MySQL

La syntaxe des procédures stockées MySQL est similaire aux fonctions et procédures d'autres langages. Il se compose de trois mots-clés : CREATE, PROCEDURE et END. Le mot clé CREATE PROCEDURE est suivi du nom et de la liste des paramètres de la procédure stockée, puis du corps de la procédure stockée et enfin du mot clé END.

Ce qui suit est un exemple simple de procédure stockée MySQL :

CREATE PROCEDURE `get_employee`(IN id INT, OUT name VARCHAR(50), OUT age INT)
BEGIN
  SELECT `name`, `age` INTO name, age FROM `employee` WHERE `id` = id;
END

La procédure stockée ci-dessus accepte un paramètre id, interroge le nom et l'âge correspondant à l'identifiant dans la table des employés, puis les affecte aux paramètres de sortie nom et âge.

  1. Appeler des procédures stockées MySQL en PHP

Appeler des procédures stockées MySQL en code PHP est très simple. Pour appeler une procédure stockée, vous pouvez utiliser l'instruction CALL fournie par l'extension MySQLi ou l'extension PDO. Voici un exemple de code qui utilise l'extension MySQLi pour appeler une procédure stockée MySQL :

// 配置连接参数
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 建立连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// 调用存储过程
$id = 1;
$stmt = $conn->prepare("CALL get_employee(?, ?, ?)");
$stmt->bind_param("i", $id);
$stmt->bind_result($name, $age);
$stmt->execute();
$stmt->fetch();
$stmt->close();

echo "Name: ".$name.", Age: ".$age;

Le code ci-dessus se connecte à la base de données MySQL, puis appelle la procédure stockée nommée get_employee via l'instruction CALL, en passant un paramètre id. Utilisez ensuite la méthode bind_result pour lier les paramètres de sortie de la procédure stockée aux variables PHP, et enfin exécutez la procédure stockée et utilisez la méthode fetch pour obtenir les valeurs des paramètres de sortie.

  1. Résumé

La procédure stockée MySQL est une fonctionnalité très pratique, qui peut améliorer la réutilisabilité du code, renforcer la sécurité des données, augmenter les performances et réduire l'interaction avec la base de données. Il est également très simple d'appeler des procédures stockées MySQL en code PHP. Il vous suffit d'utiliser l'instruction CALL fournie par l'extension MySQLi ou l'extension PDO. Espérons que cet article vous aidera à mieux comprendre les procédures stockées MySQL et les appels de procédures stockées en PHP.

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