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

Codeigniter 2 $ this-> db-> join with $ this-> db-> update

    さて、codeigniterのjoin、setなどを使用して、「クリーンな」ソリューションを見つけることができました。したがって、$ this-> db-> join()、$this->db-を使用することでCIのすべての利点が得られるのはすばらしいことです。> join()など、引用符のエスケープや追加など。

    したがって、最初にすべてのCI処理を実行します:

    $this->db->join(..) // Set all your JOINs
    $this->db->set(..) // Set your SET data
    $this->db->where(..) // Set all your WHEREs
    

    次に、Active Recordの準備ができ、クリーンアップされ、エスケープされたクエリ要素を使用してクエリを作成できます。

    // JOIN
    $sql = "UPDATE $this->baseTable ";
    $sql .= implode(' ', $this->db->ar_join);
    
    // SET
    $sql .= ' SET';
    $setArray = array();
    foreach ($this->db->ar_set as $column=>$newValue)
        array_push($setArray, " $column = $newValue");
    $sql .= implode(',', $setArray);
    
    // WHERE
    $sql .= ' WHERE '.implode(' ', $this->db->ar_where);
    
    $this->db->query($sql);
    

    誰かがより良い解決策を持っているなら、私は喜んでそれを受け入れ、代わりにそれを使用します




    1. 文字列を格納するためにデータ型テキストを使用することの欠点はありますか?

    2. SQLテーブル

    3. 動的マルチレベルメニューphpの再帰関数

    4. Yiiクエリビルダーを使用したmysqlクエリ