我正在使用Mysqli驱动程序。
当我尝试运行存储过程时,我得到Command不同步。我试过了
free_result();
这是我的代码的片段可以任何1告诉我解决方案吗?
function block()
{
$qry = "CALL `sp_get_codes_by_block_id`(?)";
$result = $this->db->query($qry, $this->getBlockId());
$temp_array = array();
$temp_array = $result;
$result->free_result();
return $result->result_array();
}
答案 0 :(得分:4)
好吧我在很多头脑风暴和搜索之后实际上找到了答案。
$qry = "CALL `sp_get_codes_by_block_id`(?)";
$result = $this->db->query($qry, $this->getBlockId());
mysqli_next_result($this->db->conn_id);
return $result->result_array();
答案 1 :(得分:1)
https://dev.mysql.com/doc/refman/5.0/en/c-api-multiple-queries.html说:
如果为存储过程执行CALL语句,也需要多结果处理。
即。您必须通过mysqli::more_results浏览所有结果集并释放所有结果集。
答案 2 :(得分:0)
尝试使用
while(mysqli_next_result($this->db->conn_id)) {
if($result = mysqli_store_result($this->db->conn_id)){
mysqli_free_result($result);
}
}