这是我的变量:
<?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'?
为什么呢?
感谢您的评论!
答案 0 :(得分:0)
updateAll函数不会转义您的输入。它也不会将数据包装在引号中。
在您的示例中,为了正确转义$ creat变量,我建议使用以下代码:
<?php
App::uses('Sanitize', 'Utility');
$Comment->updateAll(array(
'Comment.c' => "'" . Sanitize::escape($creat) . "'"
), array(
'Comment.id' => 3
));
我们用引号包装日期,并通过Sanitize :: escape传递它,以确保我们保护自己免受SQL注入。