Maison >développement back-end >tutoriel php >Comment appeler une procédure stockée MySQL à partir du code PHP ?

Comment appeler une procédure stockée MySQL à partir du code PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 06:10:02601parcourir

How to Call a MySQL Stored Procedure from PHP Code?

Comment appeler une procédure stockée MySQL à partir du code PHP

Contexte :
Appel de procédures stockées MySQL à partir de Le code PHP vous permet d'exécuter efficacement des opérations de base de données complexes. Cet article présente la meilleure approche pour appeler une procédure stockée à partir de PHP à l'aide des versions MySQL 4.1.11 (client) et 5.0.45 (serveur).

Définition de la procédure stockée :
La exemple de procédure stockée, getTreeNodeName, renvoie le nom d'un nœud étant donné son ID :

DELIMITER $$

DROP FUNCTION IF EXISTS `getNodeName` $$
CREATE FUNCTION `getTreeNodeName`(`nid` int) RETURNS varchar(25) CHARSET utf8
BEGIN
 DECLARE nodeName varchar(25);
 SELECT name into nodeName FROM tree
 WHERE id = nid;
 RETURN nodeName;
END $$

DELIMITER ;

Code PHP pour invoquer la procédure stockée :

Pour appeler la procédure getTreeNodeName, vous pouvez utiliser l'extension mysqli au lieu de l'extension mysql obsolète. Voici le code PHP :

<?php 

// enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// connect to database
$connection = mysqli_connect("hostname", "user", "password", "db", "port");

// run the stored procedure
$result = mysqli_query($connection, "CALL getTreeNodeName");

// loop the result set
while ($row = mysqli_fetch_array($result)) {
  echo $row[0] . " - " . $row[1]; // replace with appropriate column indices
}

Remarque :
De nombreux utilisateurs ont signalé des problèmes lors de l'utilisation des anciennes fonctions mysql_connect, mysql_query et mysql_fetch_array. Il est recommandé d'utiliser plutôt l'extension mysqli.

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