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

标签 php mysql stored-procedures mysqli user-defined-functions

我在 MySQL 中创建了存储过程,并希望 PHP 调用该存储过程。最好的方法是什么?

-MySQL客户端版本:4.1.11
-MySQL 服务器版本: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 ;

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

最佳答案

我现在通过使用 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]; 
}

我发现很多人在使用mysql_connect、mysql_query和mysql_fetch_array时似乎有问题。

关于php - 如何从 PHP 代码中调用 MySQL 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966747/

相关文章:

mysql - 如何在sql中对行进行分组排序

javascript - 使用 php ajax jquery 从 mysql 发送或获取数据 - 什么是安全方法?

mysql - 如何在 mysql pdo 或 mysql workbench 中运行简单的存储过程

mysql - 存储过程的返回值是否必须声明为输出参数?

php - 保留 ajax 控件的文件上传

php - 包含 ${USER} 和 ${LOGIN} 等环境变量的 include_path 不起作用

mysql - 尽管所有 "if' 都已正确关闭,但为什么 mysql Workbench 8.0 会因未关闭 if 而引发错误?

hibernate - 如何使用 Spring Data JPA 和 Hibernate 执行 H2 存储过程?

php - 在php中读取word文档

php - PHP/MySQL 查询速度慢。重新考虑请求的帮助。 (160k 和 300 行表长度)