Команды не синхронизированы; вы не можете запустить эту команду сейчас, когда вызываете хранимую процедуру в Mysql

Я пытаюсь запустить процедуру, я получаю эту ошибку

Commands out of sync; you can't run this command now 

вот оригинальная ошибка, которую я получаю

Команды не синхронизированы; вы не можете запустить эту команду сейчас

 SELECT DISTINCT `property_id`, `pin`, `block_id`, `serial_no`, `status`, `ex_sn`, `ex_code`, `property_date_time`, `street_add`, `lab_name` FROM `view_property_user_lab` WHERE status = '6' AND lab_id = '01' AND designation IN( '5','6') LIMIT 10 

может ли кто-нибудь сказать мне, почему я получаю эту ошибку и как избавиться от нее. Я использую воспламенитель кода, и я также пробовал это

 $query->free_result(). 

в моей процедуре я использовал это заявление

  SELECT * FROM temp_calculated_rates_and_rules; -- and then TRUNCATE temp_calculated_rates_and_rules; 

поскольку эта вещь вызывается в PHP Loop, которая подобна этому

  $arrIds = array('5','10'); foreach ($arrIds as $id) { $this->_StoredProcedureMapper->setPId($id); $p10values = $this->_StoredProcedureMapper->fetch_p10_values(); if (intval(@$p10values[0]['is_exempted']) != 1) { $this->generate_p10($p10values); } } 

и здесь функция отображения

  function fetch_p1_values() { $qry = "CALL sp_main_pt10(?)"; $result = $this->db->query($qry, $this->getPId()); return $result->result_array(); } 

И я использую драйвер «mysql

Поэтому вам нужно иметь дело с дополнительными наборами результатов, сгенерированными хранимой процедурой. Драйвер mysqli предоставляет метод для этого, но CodeIgniter не может сделать этот метод доступным.

Из https://ellislab.com/forums/viewthread/73714/#562711 :

Я просто добавил следующее в mysqli_result.php, который пропускает эту команду по какой-то странной причине. (в разделе /system/database/drivers/mysqli/mysqli_result.php)

 // -------------------------------------------------------------------- /** * Read the next result * * @return null */ function next_result() { if (is_object($this->conn_id)) { return mysqli_next_result($this->conn_id); } } // -------------------------------------------------------------------- 

Затем в моей модели я просто вызываю $ result-> next_result (), чтобы потерять ожидаемый посторонний набор результатов.