sql >> データベース >  >> RDS >> Mysql

MySQLエラー-コマンドが同期していません。現在、このコマンドを実行することはできません

    答えを得た! codeigniterのmysqlドライバーには、ストアドプロシージャを処理するバグがあるようです。

    config / databaseでドライバーをmysqlからmysqliに変更しました 変更してファイル

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

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

    system / database / drivers / mysqli / mysqli_result.phpを変更したことを投稿します ファイルを追加し、以下の機能を追加しました

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

    モデルを以下のように変更しました

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

    これで問題は解決しました!



    1. PHPでMySQLを使用してPDOを使用して準備された特定の種類のクエリが遅いのはなぜですか?

    2. SQLServerで「WITHRESULTSETS句が1つの結果セットを指定したためにEXECUTEステートメントが失敗しました…」を修正する方法

    3. MySQLはCSVデータからNULL値をロードします

    4. MySQLダンプでこれらのコメントを取り除くにはどうすればよいですか?