在MySQL中调用NOW()函数

时间:2010-04-27 19:22:01

标签: php mysql datetime

我正在使用php来查询mysql。这是一个:

UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"

curDate - DateTime类型。问题是在此查询后,给定电子邮件的curDate为

0000-00-00 00:00:00

怎么了?

2 个答案:

答案 0 :(得分:5)

您的PHP现在可能看起来像这样:

$sql = 'UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"';

单引号可防止变量的值被替换为字符串。您需要将其更改为:

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '$resEmail'";

您还应该知道此处可能存在SQL注入漏洞。请考虑使用mysql_real_escape_string来转发电子邮件地址。

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '" .
       mysql_real_escape_string($resEmail) . "'";

答案 1 :(得分:0)

由于您使用的是基于正确时间戳的timedate功能,请尝试使用Timestamp(Now())进行设置。