在MySQL中调用NOW()函数

Max*_*rai 3 php mysql datetime

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

UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"
Run Code Online (Sandbox Code Playgroud)

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

0000-00-00 00:00:00
Run Code Online (Sandbox Code Playgroud)

怎么了?

Mar*_*ers 5

你的PHP现在看起来像这样:

$sql = 'UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"';
Run Code Online (Sandbox Code Playgroud)

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

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '$resEmail'";
Run Code Online (Sandbox Code Playgroud)

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

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '" .
       mysql_real_escape_string($resEmail) . "'";
Run Code Online (Sandbox Code Playgroud)