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

CodeIgniter update_batchは、前のデータを置き換えずに、次に更新される値は、増分としてコンマで区切られて配置されます

    テーブルフィールドt_franchise_priceに追加されます 上書きするのではなく。

    変更:

    $this - > franchise_price_model - > batchTestupdate($postData);
    

    宛先:

    $this->franchise_price_model->batchTestupdate($postData, 2);
    

    モデルメソッドを次のように変更します:

    public function batchTestupdate($data = [], $method=1){
        $db_table = $this->db->dbprefix($this->table_test);
        $sql = "";
    
        if($method == 1){
            $this->db->update_batch($this->table_test, $data , 'test_id');
        }
        else if($method == 2){
            foreach($data as $k=>$v){
                $sql = "UPDATE $db_table SET t_franchise_price = TRIM(BOTH ',' FROM CONCAT(COALESCE(t_franchise_price,''), ',', ?)) WHERE test_id = ?;";
                $result = $this->db->query($sql, array($v['t_franchise_price'], $v['test_id']));
                if($result === false) {
                    echo "ERROR at index $k - query: ((".$this->db->last_query()."))<br/><br/>\n\n";
                    print_r($this->db->error()); echo "<br/><br/>\n\n";
                }
            }
        }
    }
    



    1. utf8をmysqlにインポートすると文字化けする

    2. MySQLUPDATEは列にデータを追加します

    3. クエリでのmysqlの大文字と小文字を区別するテーブル名

    4. プリペアドステートメントへの切り替え