2011-12-03 39 views
0

我尝试用文本保存/更新数据“...这意味着你可能会插入关键字到一个页面的标题有史以来.....”它显示500内部服务器错误,当我保存没有“ 插入“字在上面的文本中它很容易保存在数据库中。当我使用更新,删除等字段在数据库中添加/更新时,会发生同样的情况。错误是由于MySQL的保留字,是不是有任何方法可以摆脱它?为什么我不能在表单中插入数据,并在数据库中插入文本?

我使用笨和代码更新上面的文字是:

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错误消息”,作为从数据库中返回的错误的结果。

编辑

的$这个 - > DB-> escape()函数没有帮助,是因为这 - $> DB->查询()已经逃脱你的价值观。

+0

实际上AR应该会自动转义所有输入,所以你应该不需要调用$ this-> db-> escape()。奇怪。 –

+0

@DamienPirsy感谢您的纠正。这很奇怪... – rdlowrey

相关问题