0

以下に、期待どおりに機能する 2 つのクエリを示します。CodeIgniter は、2 番目のクエリに 2 つの where 句を追加しないことをどのように認識していますか? $this->db->update の後にクエリステートメントをリセットしますか?

    //Make sure customers don't belong to tier anymore
    $this->db->where('tier_id', $tier_id);
    $this->db->update('customers', array('tier_id' => NULL));

    $this->db->where('id', $tier_id);
    return $this->db->delete('price_tiers'); 
4

1 に答える 1

0

System/database/db_active_rec.php コア ファイルを見ると、(たとえば) update() 関数を確認できます。

最初に行うことは次の呼び出しです。

    // Combine any cached components with the current statements
       $this->_merge_cache();

これは、CRUD ステートメントが「部分的な」where 句などを収集する方法です。

最後から 2 番目に行われるのは、次の呼び出しです。

     _reset_write();

これにより、すべてが空にリセットされます。次に、 query() を呼び出してステートメントを送信します

于 2013-10-26T22:10:33.597 に答える