2016-04-07 3 views
0

У меня есть приложение CodeIgniter, которое обновляет два столбца в таблице, используя вспомогательный метод update() в codeigniter.Ошибка при обновлении таблицы MySQL с помощью CodeIgniter

Это контроллер:

 $data_v = array(    
      "status" => $resp->Code 
     ); 
     if($resp->Code == "0") { 
      $data_v['name'] = $responseObject->AccountName; 
       } 
     $this->employees_model->update_employee($id, $data_v); 

Модель:

 public function update_employee($id, $data) { 

    $id = (int)$id; 
    $this->db->where('empID', $id); 
    $this->db->update('emp', $data); 
} 

Вопрос заключается в том, что я получаю следующее сообщение об ошибке:

You have an error in your SQL syntax; 
    check the manual that corresponds to your MySQL server version 
    for the right syntax to use near 'NEO WHERE `empID` = 20160' at line 1 


    UPDATE `emp` SET `status` = 0, 
    `name` = ALIBABA, THIEF NEO WHERE `empID` = 20160 

Мои знания точек SQL для факт (я считаю), что значение символа

 ALIBABA, THIEF NEO 

потребности быть заключены в одинарные кавычки, чтобы посмотреть, как этот

'ALIBABA, THIEF NEO' 

Как я решить эту проблему? и если проблема не включает символьные значения в кавычки ... что я делаю? Спасибо

+0

Помогло ли вам любое последующее решение? – Hassaan

ответ

0

Да, вы правы, вам нужно добавить ' до и после строки.

Изменение от

$data_v['name'] = $responseObject->AccountName; 

в

$data_v['name'] = "'".$responseObject->AccountName."'"; 
0

Вы можете использовать побег() метод в классе дб, чтобы сделать это. Метод Escape обнаружит тип данных и добавит кавычки в строку.

Ex: $ data_v ['name'] = $ this-> db-> escape ($ responseObject-> AccountName);

Примечание: вы также можете использовать $ this-> db-> escape_str();

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