PHP调用MySQL的存储过程的实现代码
MySQL好像从5.0开始才引入存储过程,反正以前做应用的时候从没碰过,不过现在因为主要作内部系统,所以很多应用都用到了存储过程,当然前台有时候也需要调用MySQL存储过程,PHP的MySQL Lib好像支持的不是很好,不过我搜索了些资料,虽然不多,但是还是尝试的使用了,现在介绍一下方法,以便用到的朋友不用再头疼。
lMySQL扩展也是支持存储过程的,不过只支持无返回结果的存储过程,如果该存储过程存在输出,这个调用就会抛出一个错误,具体错误忘记了。调用方式很简单:
$rs = mysql_query("call func('str')", $conn);
这个如果有返回结果,比如返回字符串,就会报错,我现在找到的解决方法是使用MySQLi扩展:
$rs = mysqli_query("call func('str')", $conn);
这样$rs就作为一个普通的MySQL Result来使用了,非常方便。
在调用存储过程的时候,可能还会碰到一个问题,那就是可能会顺序调用多个存储过程,这样同样会报错,解决方法就是在调用一个存储过程并处理完成后,手动关闭MySQL链接,然后再次connect,再调用另一个存储过程再处理,需要调用多少个存储过程,就重新连接多少次。
因为我不是很了解MySQL扩展,以上纯属经验总结,如果有哪位高手知道来龙去脉,欢迎指点。
相关推荐
-
PHP调用存储过程返回值不一致问题的解决方法分析
本文实例讲述了PHP调用存储过程返回值不一致问题的解决方法.分享给大家供大家参考,具体如下: 今天遇一个同学聊存储过程返回值经常得到意外的值为null, 因为白天有事,晚上给做一个实验放在这里供有相应问题的同学查看一下. 存储过程: delimiter// createprocedureusp_s2(outpar1int) begin selectinet_ntoa(ip),portfromproxy_listlimit5; selectcount(*)intopar1fromproxy_lis
-
php调用mysql存储过程
前面转载了一篇<php调用mysql存储过程的文章>经过测试,发现文章中的方法似乎不可行! 调用带有select语句的存储过程就出现 PROCEDURE p can't return a result set in the given context的错误.google了半天,在mysql官网上找到一些说法,db_mysql的模块不支持存储过程调用,解决方法是用db_mysqli.测试了一下,果然可以了. 用法比较简单,没啥好说的,从网上copy一段代码吧: <?php /* Conne
-
php存储过程调用实例代码
复制代码 代码如下: //比如要调用的存储过程为gxtj(a,b) $db=new mysqli("localhost","ssss","aaaaa","bbbb"); mysqli_query($db,"SET NAMES utf8"); $result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 [color
-
PHP MSSQL 存储过程的方法
复制代码 代码如下: function generateDocCode() { $wf_id = self::WORKFLOW_ID; $doc_code = ""; $link = mssql_connect($this->cfg->db->params->host, $this->cfg->db->params->username, $this->cfg->db->params->password) or di
-
php调用mysql存储过程实例分析
本文实例分析了php调用mysql存储过程的方法.分享给大家供大家参考.具体分析如下: Mysql存储过程创建语法,代码如下: CREATE PROCEDURE和CREATE FUNCTION : 复制代码 代码如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE FUNCTION sp_name ([func_parameter[,...]])
-
PHP得到mssql的存储过程的输出参数功能实现
在开发过程中可能会遇到无法取得MSSQL存储过程的输出参数,很多朋友都不知道该怎么办,本文将详细介绍PHP得到mssql的存储过程的输出参数功能实现,需要了解的朋友可以参考下 复制代码 代码如下: <? $conn=mssql_connect("127.0.0.1","user","passwd"); mssql_select_db("mydb"); $stmt=mssql_init("pr_name"
-
Php Mssql操作简单封装支持存储过程
核心代码: <?php /* * class :Mssql * time :2009-12-10 * author :Libaochang * version :1.0b * description :mssql database access class,it can execute the procedur or sql */ class MssqlUtil { var $user = null; //database user name var $keys = null; //databa
-
基于Php mysql存储过程的详解
实例一:无参的存储过程 复制代码 代码如下: $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT INTO user (id, username, sex) VALUES (NULL, 's', '0');end;";mysql_
-
PHP调用MySQL存储过程并返回值的方法
本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考.具体分析如下: 调用存储过程的方法. a.如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量,也可以不必,只是没有php变量时,没有办法进行动态输入,一个Mysql变量. b.如果存储过程有OUT变量,声明一个Mysql变量,mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句,入set @mysql
-
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
[PHP Source Code]: 复制代码 代码如下: $dbh = new PDO('sqlsrv:server=连接地址;Database=数据库名', 用户名, 密码);try { $procName = "P_Test_GetMixData"; $stmt = $dbh->prepare("EXEC $procName ?, ?, ?"); $nReturnValue = 0; $strReturnValue = ""; $st
-
用PHP调用Oracle存储过程的方法
但是使用存储过程至少有两个最明显的优点:速度和效率.使用存储过程的速度显然更快.在效率上,如果应用一次需要做一系列sql操作,则需要往返于php与oracle,不如把该应用直接放到数据库方以减少往返次数,增加效率.但是在internet应用上,速度是极度重要的,所以很有必要使用存储过程.偶也是使用php调用存储过程不久,做了下面这个列子. 代码 复制代码 代码如下: //建立一个test表 create table test ( id number(16) not null, name varc
-
PHP源码分析之变量的存储过程分解
PHP代码如下: 复制代码 代码如下: $php_var = 1; 对应C的代码是: 复制代码 代码如下: zval* c_var; //定义PHP变量指针 MAKE_STD_ZVAL(c_var); //初始化PHP变量 ZVAL_LONG(c_var,1) ;//赋值 ZEND_SET_SYMBL( EG(active_symbol_table), " php_var ", c_var);//注册到全局变量符号表 一.首先看第一行: zval* c_var;//申明一
随机推荐
- JS获取下拉列表所选中的TEXT和Value的实现代码
- 详解Js模板引擎(TrimPath)
- java实现两台服务器间文件复制的方法
- Java对象的XML序列化与反序列化实例解析
- 用JS写的一个TableView控件代码
- JavaScript中神奇的call()方法
- asp.net web大文件上传带进度条实例代码
- php随机获取金山词霸每日一句的方法
- Android中实现用命令行同步网络时间
- JScript|Event]面向事件驱动的编程(二)--实例讲解:将span模拟成超连接
- jsp中URL传递中文参数的处理方法
- jquery中的ajax如何返回结果而非回调方式即为同顺序执行
- jquery 上下滚动广告
- 爆笑 四大银行高招 看了必笑
- 查看或修改Windows系列系统的序列号的vbs
- VBS基础编程教程 (第1篇)
- Android仿支付宝上芝麻信用分雷达图
- jquery选择器之层级过滤选择器详解
- Jquery对select的增、删、改、查操作
- 微信小程序-获得用户输入内容