2015-10-26 2 views
0

Я хочу вставить строку в таблицу, если она еще не существует, обновите ее. Как я могу перефразировать этот запрос в codeignitor?Условная вставка с использованием codeignitor

INSERT INTO fa_seat_details (mall_id, cineplex_name, audi_number, number_of_rows, number_of_columns) VALUES(15, "PVR", 1, 18, 16) ON DUPLICATE KEY UPDATE cineplex_name = "some name", number_of_rows=10, number_of_columns=20;

Это структура таблицы,

+-------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | mall_id | int(11) | NO | MUL | NULL | | | cineplex_name | varchar(64) | NO | | NULL | | | audi_number | int(11) | NO | | NULL | | | number_of_rows | int(11) | NO | | NULL | | | number_of_columns | int(11) | NO | | NULL | | +-------------------+-------------+------+-----+---------+----------------+

+1

может быть дубликат http://stackoverflow.com/questions/3361490/how-would-i-use-on-duplicate-key-update-in-my-codeigniter-model и многие из таких – siddhesh

+0

любого поля uniqe для проверки ?? –

+0

сочетание mall_id и audi_number уникально в этой таблице –

ответ

1

Попробуйте

public function FunctionName($value)//pass data to here 
{ 
    $query = $this->db->query("SELECT * FROM category WHERE aa = 'bbbbb'"); 
    $result = $query->result_array(); 
    $count = count($result); 

    if (empty($count)) { 

     # insert code 
     $data = array(
      'title' => 'My title' , 
      'name' => 'My Name' , 
      'date' => 'My date' 
     ); 

     $this->db->insert('mytable', $data); 
    } 
    elseif ($count >1) { 
     # Having Multiple data on it 
     echo "Wrong data selected"; 
    } 
    else{ 

     #update code 
     $data = array(
      'title' => $title, 
      'name' => $name, 
      'date' => $date 
     ); 

     $this->db->where('id', $id); 
     $this->db->update('mytable', $data); 
    } 
} 
0

Может быть, вы хотите что-то вроде этого:

$data['mall_id'] = 15; 
$data['cineplex_name'] = "PVR"; 
$data['audi_number'] = 1; 
$data['number_of_rows'] = 18; 
$data['number_of_columns'] = 16; 

$sql = $this->db->insert_string('fa_seat_details', $data) . ' ON DUPLICATE KEY UPDATE cineplex_name = "some name", number_of_rows=10, number_of_columns=20'; 
$this->db->query($sql); 
Смежные вопросы