PHP中的循环内部存储过程

时间:2013-08-07 07:02:27

标签: php mysql stored-procedures

当我运行call procedure一旦它工作正常但是如果我把它放在for循环中我会收到错误:

这是我的代码:

<?php 
    //mysql_query(mysql, "SET @increment = 10");
    for($i=0;$i<2;$i++) {
        $overall_dissat=mysql_query("call daily_sales('HO Bangalore','2013-07-01','2013-07-30')");
        if($overall_dissat===false) {
            echo mysql_errno().': '.mysql_error();
        }
        while($obj=mysql_fetch_array($overall_dissat)) {
           //print_r($obj);
           echo "<td>".$obj['sat']."</td>";
        }
    }
?>

这是错误:

  

2014:命令不同步;你现在不能运行这个命令

enter image description here

与mySql中的调用过程交谈正常。但是从PHP ....?如何实现它..

1 个答案:

答案 0 :(得分:1)

您的存储过程返回多个结果集。只有在获取所有挂起结果后,才能在连接上发出新查询。要处理过程调用结果,您需要使用mysqli_next_result()/ mysqli_more_results()。请参阅example

停止使用mysql_ *函数,它们已经过时了。