2011-12-03 6 views
0

テキストでデータを保存/更新しようとしています... ...つまり、のキーワードをページのタイトルに挿入すると..... "これは500の内部サーバーエラーを表示し、 "という単語を上記のテキストの中に入れておくと、簡単にデータベースに保存されます。 更新などの予約語をデータベースに追加/更新すると同じことが起こります。エラーはmysqlの予約語に起因していますが、それを取り除く方法はありませんか?私はテキストの上に更新するようにCodeIgniterの、コードを使用していますなぜデータベースにテキスト 'insert'を含むフォームからデータを挿入できないのですか?

は次のとおりです。

function update_template($id,$newtext,$newcomptext) 

    {  
      $data=array(
      'option_value'=>$newtext, 
      'competitive_value'=>$newcomptext 
      ); 
      $this->db->where('id', $id); 
      $this->db->update('report_texts', $data); 

      return 'Successfully Updated'; 


    } 

私は助けのために非常に感謝するでしょう。

+0

実際に何が挿入されているかを調べるためにlastQuery()関数を使ってみましたか? –

+0

database.phpのdb_debugをtrueに設定して、エラーが発生したときにCIが実行していた内容を出力します。 – Josnidhin

答えて

0

データベースに書き込んでいるテキストの「INSERT」という単語がSQLエラーを引き起こしている可能性があります(INSERTは一般にSQL実装の予約語です)。

いずれにしても、CIフレームワークには、エラーがデータベースから返された結果、「ああ、問題があります。私は500エラーメッセージを返すべきです」と記載されています。

EDIT

ます$ this-> DB->エスケープ()関数は、この理由ます$ this-> DB->クエリを(解決できない)は、すでに自分の価値観をエスケープします。

+0

実際には、ARは自動的にすべての入力をエスケープするはずですので、$ this-> db-> escape()を呼び出す必要はありません。奇妙な。 –

+0

@DamienPirsy訂正していただきありがとうございます。それ、変だよ ... – rdlowrey

関連する問題