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 相关文章推荐
PHP自动生成月历代码
Oct 09 PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
深入php self与$this的详解
Jun 08 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
php接口技术实例详解
Dec 07 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 PHP
PHP7移除的扩展和SAPI
Mar 09 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同时连接多个mysql数据库示例代码
2014/03/17 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
vue filters的使用详解
2018/06/11 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
python中字符串类型json操作的注意事项
2017/05/02 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python用户管理系统的实例讲解
2017/12/23 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
会计毕业生自荐信
2013/11/21 职场文书
春节晚会主持词
2014/03/24 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
违纪开除通知书
2015/04/25 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技