2012-04-30 15 views
0

コマンドが同期していませんこのコードを実行するとエラーが発生します。Mysqliの準備エラー:コマンドが同期していません。

foreach ($groupsId as $gpId) { 

      $stmt = $db->query("CALL addUserToGroup(?,?)", array($userId, $gpId)); 
     $stmt->execute(); 


} 

このエラー

Db_Statement_Mysqli_Exception' with message 'Mysqli prepare error: Commands out of sync; you can't run this command now' in /var/www/html/zend/Zend/Db/Statement/Mysqli.php:77 Stack trace: #0 

を発生し、ここでストアドプロシージャ

DELIMITER // 
CREATE PROCEDURE addUserToGroup(IN groupId INT(11),IN userId INT(11)) 

    BEGIN 
     insert into `group_users`(`group_id`,`user_id`) values(groupId ,userId); 
    END // 

DELIMITER ; 

私は何をすべきです???

+0

それが今まで仕事でしたが動作するはず?データが正しいタイプであることが確認されていますか?あなたの変数が逆向きに渡されているように見えますが、これは本当にシンプルな準備文です。 '$ gpId'は配列の' 0'の位置にあるべきではありませんか? – RockyFord

+0

私はローカルで試してみましたが、正常に動作しますが、オンラインで作業するとエラーが発生します。 – palAlaa

+0

私はこの問題の解決策が必要です:( – palAlaa

答えて

0

この

foreach ($groupsId as $gpId) { 

    $stmt = $db->query("CALL addUserToGroup(?,?)", array($userId, $gpId)); 
    $result = $stmt->execute(); 
    //or $result = $query->fetchAll(); 
    $stmt->closeCursor(); 
} 

のようないくつかの事が:)

関連する問題