使用mysqli和prepared语句时命令不同步

时间:2010-09-22 13:41:06

标签: sql mysql mysqli

我正在尝试进行一些调用,但第二次查询失败,命令'命令不同步;你现在不能运行这个命令'错误。

代码如下所示:

$sql="call listReport();";
$results = mysqli_query($link,$sql); 
$arr=array();
while($row=mysqli_fetch_array($results)) {
    array_push($arr,$row);
}
mysqli_free_result($results);

// then I have this

// but this fails, giving the above mentioned error
$stmt = @mysqli_prepare($link,"select ........") or die(mysqli_error($link));
@mysqli_stmt_bind_param($stmt, 's', $s);
@mysqli_stmt_execute($stmt);
@mysqli_stmt_bind_result($stmt, $s);
@mysqli_stmt_fetch($stmt);
@mysqli_stmt_close($stmt);

我实际上使用了mysqli_free_result($results);但是没有用。我错过了什么?

1 个答案:

答案 0 :(得分:1)

问题是mysql存储过程可以返回各种结果集,所以你应该使用mysqli_multiquery

"PHP 5 and MySQL 5 Stored Procedures Error"