我正在使用php來查詢mysql。這裏是一個:在MySQL中調用NOW()函數
UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"
curDate - DateTime類型。問題是,在這個查詢後,給定電子郵件的curDate是
0000-00-00 00:00:00
怎麼了?
我正在使用php來查詢mysql。這裏是一個:在MySQL中調用NOW()函數
UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"
curDate - DateTime類型。問題是,在這個查詢後,給定電子郵件的curDate是
0000-00-00 00:00:00
怎麼了?
你的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) . "'";
由於您使用的是基於正確的時間戳TIMEDATE功能,嘗試用Timestamp(Now())
設置它。
顯示您的「CREATE TABLE」語句,以便我們可以看到數據類型。此外,使用保留字命名字段是非常糟糕的做法(如curDate-記住sql不區分大小寫), – dnagirl 2010-04-27 19:26:51
如果執行:select NOW();你從MySql得到什麼? – AlG 2010-04-27 19:27:14
@ qor72 2010-04-28 02:26:45 – Ockonal 2010-04-27 19:28:33