0

我的控制器代码是

if(!empty($this->request->data['Color']['color_name']))
          {
              $color_name = $this->request->data['Color']['color_name'];
              $id = $this->request->data['Color']['id'];
              $this->Color->query("UPDATE colors set color_name='$color_name' WHERE id='$id'");
              $this->Session->setFlash('Color\'s Updated Successfully.', 'default', array('class' => 'oMsg1 oMsgError1'));
              $this->redirect('add_color');
          }

它完美地工作并更新了记录,但是当我输入“学生”之类的值时,它不能插入学生的。错误消息如下:

“错误:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 's' WHERE id='4' 附近使用的正确语法'在第 1 行"

我该如何解决这个问题?

4

1 回答 1

0

虽然我强烈建议使用cakephp 的保存功能进行查询,但在回答您的问题时,您需要转义“学生”中的 '。例如

UPDATE colors set color_name='student''s' WHERE id='$id'
于 2013-04-10T18:36:11.720 回答