sql >> Database teknologi >  >> RDS >> Mysql

MySQL-fejl - Kommandoer ude af synkronisering; du kan ikke køre denne kommando nu

Fik svaret! Det ser ud til, at codeigniters mysql-driver har fejl, der håndterer lagrede procedurer.

Jeg ændrede driverne fra mysql til mysqli i config/database fil ved at ændre

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

til

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

Indlæg om, at jeg har ændret system/database/drivers/mysqli/mysqli_result.php fil og tilføjede nedenstående funktion

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

og ændrede modellen som nedenfor

$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;
}

Dette løste problemet!



  1. Installer lagret procedure på flere databaser

  2. Sådan tælles forskellige værdier i SQL

  3. Sådan nulstilles/ændres MySql root-adgangskode-kommandolinjen i ubuntu linux

  4. Indstilling af MySQL-konfigurationsvariabler – MySQL 5.7 vs MySQL 8.0