2012-03-22 11 views
0

CodeIgniterでルーチンを実行する際に問題があります。CodeIgniter - カップルのUPDATE文でプロシージャを実行できません

私はmysqlテーブルをパラメータで指定されたデータで更新するだけのルーチンを持っています。

はもともと私が受け取っ:

エラー番号:2014 コマンド同期が外れ、あなたは

をmysqliのために変更されたドライバでhttp://codeigniter.com/forums/viewthread/96583/

$this->mydb->Query($sql); 

で指定されたソリューションをしようとしましたそれは私のためにselect文と正常に動作しますが、ルーチンがある場合

今、このコマンドを実行することはできませんカップルアップデートのみ - それは動作しません。

エラーメッセージが返されないという問題があります。正常に実行されたように動作しますが、テーブルは更新されません。

注:問題のクエリを出力し、これをMySQL Workbenchで実行しようとすると、テーブルが正しく更新されるため、ルーチン自体に問題はありません。

いずれかのアドバイスをいただければ幸いです。クエリごとにプロジェクト全体で使用

+0

ちょうどいいことです:あなたが更新した値がすでに得られている値ではないと確信していますか?その場合はtrueを返しますが、変更は行われません。 http://php.net/manual/en/function.mysql-affected-rows.phpとは何ですか? –

+0

質問は無視してください。私はちょうど問題を解決しました。この問題は、このルーチンの前に$ this-> db-> queryを使って別のものを呼び出したという事実によって発生したようです。 $ this-> mydb-> Queryのみを使用するようにプロジェクト全体を更新する必要があります。 ありがとう – AlexG

+0

私はprint_rとコピー&ペーストしてワークベンチにコピーして実行するとデータが更新されるので、Robin、私は間違いないと確信しています:) – AlexG

答えて

1

ます$ this-> mydb->クエリを実行しても問題が解決した

2

mysqliに設定ファイルにdbdriverを変更してみてください:

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

+0

ありがとうございました; CodeIgniterで作業していないので、残念ながら今は確認できません。 – AlexG

0
function call($procedure) 
{ 
    $result = @$this->db->conn_id->query($procedure); 

    while ($this->db->conn_id->next_result()) 
    { 
     //free each result. 
     $not_used_result = $this->db->conn_id->use_result(); 

     if ($not_used_result instanceof mysqli_result) 
     { 
      $not_used_result->free(); 
     } 
    } 

    return $result; 

} 
関連する問題