2016-04-07 15 views
0

codeigniterの "update()"ヘルパメソッドを使用して、テーブルの2つのカラムを更新するCodeIgniterアプリケーションがあります。 SQLポイントのCodeIgniterを使用してMySQLテーブルを更新する際のエラー

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 

私の知識へ:

 public function update_employee($id, $data) { 

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

問題は、私は次のエラーを取得することです:

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

モデルは次のとおりです。

この

はコントローラであり、事実(私は信じる)その文字の値

 ALIBABA, THIEF NEO 

この

'ALIBABA, THIEF NEO' 

どのように私はこの問題を解決することができますように見えるように、単一引用符で囲む必要がありますか?問題が引用符で囲まれていない場合はどうすればよいですか? ありがとう

+0

次の解決策をお持ちの方はどなたですか? – Hassaan

答えて

0

はい、文字列の前後に'を追加する必要があります。

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

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

から

変更するには、それを行うには、DBクラスのエスケープ()メソッドを使用することができます。 Escapeメソッドはデータ型を見つけ、stringに引用符を追加します。

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

注:$ this-> db-> escape_str()も使用できます。

関連する問題