微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

代码如下:
$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,'{$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.'
'; //输出来自存储过程中输出的变量
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 ……
……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐