如何从PHP代码中调用MySQL存储过程?

Phe*_*eap 37 php mysql mysqli stored-procedures user-defined-functions

我有我在MySQL中创建的存储过程,并希望PHP调用该存储过程.做这个的最好方式是什么?

-MySQL客户端版本:
4.1.11 -MySQL Server版本:5.0.45

这是我的存储过程:

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 ;
Run Code Online (Sandbox Code Playgroud)

调用getTreeNodeName过程的PHP代码是什么?

Phe*_*eap 51

我现在通过使用mysqli而不是找到解决方案mysql.

<?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 store proc
$result = mysqli_query($connection, "CALL StoreProcName");

//loop the result set
while ($row = mysqli_fetch_array($result)){     
  echo $row[0] . " - " . + $row[1]; 
}
Run Code Online (Sandbox Code Playgroud)

我发现很多人似乎都有使用问题mysql_connect, mysql_query and mysql_fetch_array.


小智 13

您可以使用以下语法调用存储过程:

$result = mysql_query('CALL getNodeChildren(2)');
Run Code Online (Sandbox Code Playgroud)