cakephp211日期插入

时间:2012-05-16 23:02:17

标签: cakephp-2.1

这是我的变量:

     <?php 
     //...
     $creat='2000-03-15'  ,from an input field.
     ?> 

这是我的插入代码:

     <?php 
     //...
       $this->Comment->updateAll(         
              array('Comment.c' => $creat ),
              array('Comment.id' => '3'  ));
     ?> 

当我想将它保存在一个具有日期字段类型的表中,而不是'2000-03-15'时,我有'0000-00-00'? 为什么呢?
感谢您的评论!

1 个答案:

答案 0 :(得分:0)

updateAll函数不会转义您的输入。它也不会将数据包装在引号中。

在您的示例中,为了正确转义$ creat变量,我建议使用以下代码:

<?php
App::uses('Sanitize', 'Utility');
$Comment->updateAll(array(
    'Comment.c' => "'" . Sanitize::escape($creat) . "'"
), array(
    'Comment.id' => 3
));

我们用引号包装日期,并通过Sanitize :: escape传递它,以确保我们保护自己免受SQL注入。