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

行を更新しますが、codeigniterに行が存在しない場合は挿入します

    最初にテーブルからすべてのimage_idを選択します。

    $data = $this->db->select(`image_id`)->get($this->table_name)->result_array();
    

    image_idを配列にリストします。

    $image_ids=array();
    
    foreach($data as $key => $value):
    
    $image_ids[$key]=$value[`image_id`];
    
    endforeach;
    
    $update = array(
       array('image_id' => 1, 'name' => 'Party Gustav'),
       array('image_id' => 2, 'name' => 'Peter'),
       array('image_id' => 3, 'name' => 'Lisa')
    )
    

    image_idsが存在するかどうかを確認します:

    $update_query= $this->db->where_in(`image_ids`,$image_ids)
                   ->get($this->table_name)->result();
    
    if($update_query->num_rows() > 0):
    
      $this->db->update_batch($update,$this->table_name);//update if ids exist
    else
       $this->db->insert_batch($update,$this->table_name);//insert if does not exist
    endif;
    


    1. PHPのパスワードリセットシステム

    2. 左アウタージョインを使用するのはいつですか?

    3. MySQLエラー1045(28000):ユーザー'bill' @'localhost'のアクセスが拒否されました(パスワードを使用:YES)

    4. 2つのテーブル間の差異を返すSQLクエリ