Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Fehler – Befehle nicht synchron; Sie können diesen Befehl jetzt nicht ausführen

Habe die Antwort! Es scheint, als hätte der mysql-Treiber von codeigniter Fehler beim Umgang mit gespeicherten Prozeduren.

Ich habe die Treiber in der config/database von mysql auf mysqli geändert Datei durch Ändern von

$db['default']['dbdriver'] = 'mysql';

zu

$db['default']['dbdriver'] = 'mysqli';

Poste, dass ich die system/database/drivers/mysqli/mysqli_result.php geändert habe Datei und fügte die folgende Funktion hinzu

function next_result()
{
  if (is_object($this->conn_id))
  {
      return mysqli_next_result($this->conn_id);
  }
}

und modifizierte das Modell wie folgt

$db = $this->load->database('mailbox',TRUE);
$qry_res = $db->query('Call circle_pending_p()');

echo $db->_error_message();
$res = $qry_res->result_array();

$qry_res->next_result();
$qry_res->free_result();

if (count($res) > 0) {
      return $res;
} else {
      return 0;
}

Dies hat das Problem gelöst!