mysql执行存储过程提示out of_PHP执行MYSQL存储过程报错:Commands out of sync; you can't run&...

php中在同时执行2个存储过程时,有一个程序2个储存过程都执行,有一个程序只执行第一个调用。2个都执行的调用如下:

$mydb->query("delete from pinfo where id in(" . $id .

")");

SaveLog($Ptype, $_SESSION["username"]. " Delete ".$Ptype." [ID=" .

$id . "]");

只有第一个存储过程执行的程序如下:

$uresult = $mydb->query("call

Addnews('".$strname."','".$source."','".$strtitle."','".$strContent."','".time()."',@uresult)");

SaveLog($Ptype, $_SESSION["username"]. " Add ".$Ptype." [title=" .

$strtitle . "]");

$nResult = mysql_fetch_row($uresult);

$nResult = $nResult[0];

其中函数SaveLog内容如下:

Function SaveLog($strMessageType,$strMsg)

{ mysql_query("call

SaveManageLog('".$strMessageType."','".strFilter($strMsg).

"',".time().")"); }

把不执行第2个储存过程的echo出来,放在mysql里单独是可执行的。那么问题出在那呢?

mysql_query($command) or die(msyql_error())

把mysql_query后加上 or die(msyql_error())显示错误,提示Commands out of

sync; you can't run this command now

解决如下:

$mysqli = new

mysqli("localhost", "root", "sbqcel", "test");

$mysqli->multi_query("call

Addnews('".$strname."','".$source."','".$strtitle."','".$strContent."','".time()."',@uresult)"); $uresult

=$mysqli->store_result();

$nResult =

$uresult->fetch_row();

$uresult->close();

$mysqli->close();

SaveLog($Ptype,

$_SESSION["username"]. " Add ".$Ptype." [title=" . $strtitle .

"]");

现在2个存储过程都可以执行了。注意:如果第一个调用返回值,那么第2个就不能执行,这里就要用到mysql的mysqli

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值