PHP调用MySQL存储过程(带out参数)

kyle 2017-03-09 2565次浏览 0条评论 0 打赏作者 0 0

问题:在php中用使用mysql方式调用存储过程后无法再执行其它sql执行语句。报错内容:commands out of sync you can't run this command now 。

解决办法:使用mysqli方式,示例代码:

//以下为原生写法,可自行封装
//mysqli连接
$mysqli = new mysqli('host', 'user', 'password', 'dbname'); //主机,用户名,密码,数据库名

$result = [];
//调用存储过程
$procedure = "call ProcedureName($params, @outName)";
//数据
if($mysqli->multi_query($procedure)){
   do{
      if($res = $mysqli->store_result()) {
         while($row = $res->fetch_array()) {
            $result[] = $row;
         }
         $res->close();
      }
   }while($mysqli->next_result());
}

//获取@outName值
$sql = "SELECT @outName";
$que = $mysqli->query($sql);
$res = $que->fetch_row();
$out = $res ? $res[0] : '';
0

0 条评论

    没有找到数据。

发表评论

kyle
土豪

kyle

注册时间:2016-10-28
最后登录:6小时前
发布
带到手机上看