用 PHP 调用 MySQL 存储过程
MySQL 5.0 以上支持存储过程。
PHP 5.0 以上的 mysqli 系列函数可以支持操作 MySQL 的存储过程。
以下是一些简单的存储过程和用 PHP 调用的示例。
一、返回单个数据:
- 1: <?php 2: header(”Content-Type:text/html;charset=utf-8″); 3: 4: $host = “localhost”; 5: $user = “root”; 6: $password = “mypassword”; 7: $db = “test_store_proc”; 8: $dblink = mysqli_connect($host, $user, $password, $db) or die(”can’t connect to mysql”); 9: 10: $dblink->query(’SET NAMES UTF8′);11: if ($result = $dblink->query(”CALL sp_test0(@num, @x, 123)”))12: {13: $rs = $dblink->query(”select @num”);14: $row = $rs->fetch_array();15: echo $row[’@num’], ‘<br>’;16: 17: $rs = $dblink->query(”select @x”);18: $row = $rs->fetch_array();19: echo $row[’@x’];20: 21: mysqli_free_result($rs);22: }23: else24: echo ‘error…’;25: mysqli_close($dblink);26: 27: /*28: – Procedure “sp_test0″ DDL29: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test0`(OUT num INT, OUT x VARCHAR(16), IN n INT)30: BEGIN31: DECLARE nouse int;32: DECLARE tmp int;33: 34: SELECT nId INTO nouse FROM open_news WHERE nID=39;35: SELECT count(*) INTO tmp FROM open_news;36: SET num = tmp;37: 38: SET x = ‘XXX’;39: END;40: */41: ?>42:
二、返回结果集:
- : <?php 2: header(”Content-Type:text/html;charset=utf-8″); 3: 4: $host = “localhost”; 5: $user = “root”; 6: $password = “mypassword”; 7: $db = “test_store_proc”; 8: $dblink = mysqli_connect($host, $user, $password, $db) or die(”can’t connect to mysql”); 9: 10: $dblink->query(’SET NAMES UTF8′);11: if ($result = $dblink->query(”call sp_test1()”))12: {13: while( $row = $result->fetch_array())14: {15: echo ($row[’nId’]. “–” . $row[’sTopic2′] . “<br>”);16: }17: mysqli_free_result($result);18: }19: else20: echo ‘error…’;21: mysqli_close($dblink);22: 23: /*24: – Procedure “sp_test1″ DDL25: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test1`()26: BEGIN27: SELECT * FROM open_news WHERE nId<40;28: END;29: */30: ?>
三、返回多个结果集:
- : <?php 2: header(”Content-Type:text/html;charset=utf-8″); 3: 4: $host = “localhost”; 5: $user = “root”; 6: $password = “mypassword”; 7: $db = “test_store_proc”; 8: 9: $dblink = new mysqli($host, $user, $password, $db);10: if (mysqli_connect_errno())11: {12: print(’Can not connect to MySQL server’);13: exit;14: }15: else16: print(’?????? MySQL ????????<br>’);17: 18: $dblink->query(’SET NAMES UTF8′);19: $rows = array();20: if($dblink->real_query(”CALL sp_test2()”))21: {22: do23: {24: if($result = $dblink->store_result())25: {26: while ($row = $result->fetch_assoc())27: {28: array_push($rows, $row);29: }30: $result->close();31: }32: }33: while($dblink->next_result());34: }35: else36: echo ‘error…’;37: 38: $dblink->close();39: 40: print_r($rows);41: /*42: – Procedure “sp_test2″ DDL43: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test2`()44: BEGIN45: SELECT nId,sTopic2 FROM open_news LIMIT 0, 5;46: SELECT count(nId) AS counter FROM open_news;47: END;48: */49: ?>
本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286529,如需转载请自行联系原作者
用 PHP 调用 MySQL 存储过程相关推荐
- hibernate mysql 存储过程_hibernate调用mysql存储过程
hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...
- vb获得mysql的值,VB.NET调用MySQL存储过程并获得返回值的方法
本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体实现方法如下: Dim myConnectionString As String = "Data ...
- jsp实现mysql存储过程_JSP调用MySQL存储过程收藏
JSP调用MySQL存储过程收藏 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {c ...
- mysql存储过程 php_PHP调用MYSQL存储过程实例
说一下 在PHP页面中调用MYSQL存储过程的方法 以下是几个例子 仅供参考 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') ...
- go mysql存储过程_Golang 调用MySQL存储过程
Golang 调用MySQL存储过程 最近写项目发现,很多逻辑业务的实现,写到数据库的存储过程中,然后调用,真的非常方便.后端代码量大大减少,最重要的是性能高,速度快! 引用说明:项目使用数据库ORM ...
- c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...
C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...
- mysql inputoutput_PHP:同时使用INPUT和OUTPUT参数(不“ INOUT”)调用MySQL存储过程
从PHP,我想在MySQL中调用存储过程.该过程采用输入 和 输出参数- 而不是 " INOUT" 参数. 对于一个简单的示例,说我在MySQL中具有以下存储过程: DELIMIT ...
- jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码
1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码 代码如下: delimiter // drop procedure add_pro // create procedure ...
- Golang 调用MySQL存储过程
原创:转载请标明出处: https://blog.csdn.net/ming2316780/article/details/86499344 本文出自:[iGoogle.ink的博客] Golang ...
- SpringBoot Mybatis注解调用Mysql存储过程并接收多个OUT结果集(多个mode=IN和mode=OUT参数)
其他同学提供的方式大部分都是Map接收调用mysql存储过程返回OUT结果集,要么游标,要么单个OUT,然后再次加工成想要的对象.涉及到直接用注解实现自动转换OUT参数结果集为对象时,都是忽略带过. ...
最新文章
- 《数据科学家养成手册》第十章--混沌论
- 软件开发管理的十大工作任务(FROM 栾跃)
- 推荐系统笔记(内容推荐)
- docker Harbor
- CkEditor批量上传图片(java)
- C#之获取网页标题...
- Markdown 编辑器才是yyds|CSDN编辑器测评
- 基于android平台的24点游戏设计与实现需求分析,基于Android平台的24点游戏设计与实现需求分析_毕业设计论文.doc...
- python补集运算_Python 的集合(set)运算
- 配置webpack.config.js遇到的一些问题
- (DevExpress2011控件教程)ASPxGridView 范例3 :ASPxGridView 排序和分组、过滤行、统计功能等功能实现...
- 【POJ 2482】【扫描线问题】Stars in Your Window【包星星问题】
- java极光推送demo_Java集成极光推送
- 《活法》 -豆瓣评分8.4
- JSON.stringify(value[, replacer[, space]])中三个参数详解
- treeset可以重复吗_买了好几份意外险,可以重复理赔吗?
- C++和java的区别和联系
- 初尝vue-element-admin
- 啊哈添柴挑战Java1826. 顺序输出(简单)
- STM32F103C8T6封装引脚图
热门文章
- 缓存用不好,Bug改到老
- 从面试角度分析CopyOnWriteArrayList源码
- 使用IntelliJ IDEA查看类图,内容极度舒适
- 面试官:你分析过mybatis工作原理吗?
- 工作发狂:Mybatis 中$和#千万不要乱用!
- 【廖雪峰python入门笔记】list删除元素_pop()
- 提速20倍!谷歌AI发布TensorFlow 3D
- 改进张益唐证明,陶哲轩「他的证明比我还强」,这个天才青年还解决了困扰数学界近80年的「简单问题」...
- 如何逐步打下(研究生/博士生阶段)深度学习的数学基础?
- 工欲善其事,必先利其器。如何玩转 VS Code?