2012-03-10 30 views
4

でストアドプロシージャを呼び出している間、あなたは、私がここで私は、このエラーにコマンドが同期していません。 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 

このエラーが発生している理由と、それを取り除く方法を教えてください。私は、コードの点火装置を使用していますし、私もこの事は、この

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

    } 
のようであるPHPループ内で呼び出されるよう、私はこの文

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

を使用していた私のプロシージャ内でこの

$query->free_result(). 

を試してみました

ここではマッパー機能です

function fetch_p1_values() 
{ 

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

そして私は "mysqli"ドライバを使用しています

+0

これはすべてあなたのSQLですか?あなたは同時に他のクエリを実行していますか?ストアドプロシージャを呼び出すときや、マルチクエリモードを有効にせずにマルチクエリを実行するときにこのエラーが頻繁に発生します。 –

+0

はい本当に私は複数のquriesを実行していますが、実際にはエラーが表示されている1を貼り付けただけです –

+0

以前のクエリを掲示したり、PHPを実行するPHPを投稿できますか?投稿したクエリに問題はありません。あなたがそれを実行しようとすると、あなたのMySQLセッションの状態に問題があります。 –

答えて

3

したがって、ストアドプロシージャによって生成された余分な結果セットに対処する必要があります。 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() 期待余分な結果セットを失い。

+0

リンクはうまくいきません。 –

+0

@ YatinMistryそれは今更新されました。 –

+0

更新いただきありがとうございます –

関連する問題