php调用MySQL存储过程的方法集合(推荐)


Posted in PHP onJuly 03, 2013

类型一:调用带输入、输出类型参数的方法

$returnValue = '';
try {
 mysql_query ( "set @Return" );
 $spname = 'P__Test_GetInfo1';
 mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die ( "[$spname]Query failed:" . mysql_error () );
 $result_return = mysql_query ( "select @Return" );
 $row_return = mysql_fetch_row ( $result_return );
 $returnValue = $row_return [0];
} catch ( Exception $e ) {
 echo $e;
}
echo $returnValue; //输出来自存储过程中输出的变量

类型二:调用带多个输出类型和多个输入类型参数的方法
$userId = 0;
try{
    mysql_query("set @Message");
    mysql_query("set @Id");
    mysql_query("call P__Test_Login(@Message, @Id, '{$userId}', '{$pwd}')", $conn) or die("Query failed:".mysql_error());
    $result_mess = mysql_query("select @Message");
    $result_uid = mysql_query("select @Id");
    $row_mess = mysql_fetch_row($result_mess);
    $row_uid = mysql_fetch_row($result_uid);
    $Proc_Error = $row_mess[0];
    $uId = $row_uid[0];
}
catch( Exception $e )
{
   echo $e;
}
echo 'proc return message:'$Proc_Error.'<br/>'; //输出来自存储过程中输出的变量
echo 'User id:'.$uId; //获取用户id

类型三:调用带返回结果集的方法
try {
 $spname = 'P__Test_GetData';
 $query = mysql_query ( "call $spname()", $conn ) or die ( "[$spname]Query failed:".mysql_error() );
 while ( $row = mysql_fetch_array ( $query ) ) {
  echo $row ['ProvinceID'].'::'.$row ['ProvinceName']; //输出数据集
 }} catch ( Exception $e ) {
 echo $e;
}

类型四:调用带返回多个结果集的方法(目前只能通过mysqli来实现~~)
//PHP
$rows = array ();  
$db = new mysqli($server,$user,$psd,$dbname);  
if (mysqli_connect_errno()){  
    $this->message('Can not connect to MySQL server');  
}  
$db->query("SET NAMES UTF8");  
$db->query("SET @Message");
if($db->real_query("call P__Test_GetData2(@Message)")){  
    do{  
        if($result = $db->store_result()){  
            while ($row = $result->fetch_assoc()){  
                array_push($rows, $row);  
            }  
            $result->close();  
        }  
    }while($db->next_result());  
}  
$db->close(); 
print_r($rows);
//Procedure 
……
select * from T1 where ……
select * from T2 where ……
……
PHP 相关文章推荐
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
php 缓存函数代码
Aug 27 PHP
php执行sql语句的写法
Mar 10 PHP
thinkphp 多表 事务详解
Jun 17 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
浅析PHP文件下载原理
Dec 25 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
Nov 15 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 #PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 #PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 #PHP
解析php5配置使用pdo
Jul 03 #PHP
基于PHP创建Cookie数组的详解
Jul 03 #PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 #PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 #PHP
You might like
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
destoon二次开发入门示例
2014/06/20 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
python可视化text()函数使用详解
2020/02/11 Python
python包的导入方式总结
2021/03/02 Python
什么是会话Bean
2015/05/14 面试题
贫困证明模板(3篇)
2014/09/16 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
校运会加油稿大全
2015/07/22 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL