2014-09-24 6 views
0

Я хотел бы знать, как лучше всего сделать запрос в инструкции if. потому что я хотел бы использовать одну функцию для моего CodeIgniter редактирования основной функции,если запрос не обновляется

Так он сочетает в себе как запрос и делает это, если запрос не обновление, то есть вставка путь лучший способ

public function addUserGroup($data) { 
    $this->db->query("INSERT INTO " . $this->db->dbprefix . "user_group SET 
    name = " . $this->db->escape($data['name']) . ", 
    permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . " "); 
} 

public function editUserGroup($user_group_id, $data) { 
    $this->db->query("UPDATE " . $this->db->dbprefix . "user_group SET 
    name = " . $this->db->escape($data['name']) . ", 
    permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . " WHERE user_group_id = '" . (int)$user_group_id . "'"); 
} 
+3

Вопрос не ясно – Naincy

+0

вы можете адаптировать то, что здесь используется http://stackoverflow.com/questions/15085990/can- вы иметь, если-то-еще-логики-в-SQL. Обновите запись, добавьте 'IF @@ rowcount = 0 INSERT ......' – RST

ответ

0

Вы можете установить, если/другое условие с помощью «user_group_id». Я думаю, что это должно происходить из массива post, такого как $this->input->post('user_group_id').

Таким образом, вы можете создать одну функцию, которая будет проверять эти условия, как показано ниже:

function my_function(){ 
    if($this->input->post('user_group_id')){ 
    // call update query 
    }else{ 
    // call insert query 
    } 
} 
0

пытаются сохранить значения в переменной и передавать вар запрашивать и попытаться добавить правильное цитирование на запрос вары

public function addUserGroup($data) { 
    $perm = (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : ''); 
    $this->db->query("INSERT INTO " . $this->db->dbprefix . "user_group SET name = '" . $this->db->escape($data['name']) . "', permission = '" .$perm. "' "); 

}

0

Вы можете сделать это с помощью одного запроса очень аккуратно:

"INSERT INTO " . $this->db->dbprefix . "user_group SET name = " . 
$this->db->escape($data['name']) . ", 
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . 
" ON DUPLICATE KEY UPDATE ". 
$this->db->dbprefix . "user_group SET name = " . 
$this->db->escape($data['name']) . ", 
permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . " 
WHERE user_group_id = '" . (int)$user_group_id . "'"); 

Единственное, что требуется первичный ключ на столе

Смежные вопросы