执行此php代码时出现错误:
$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`=$item,`Timestamp`=$today WHERE `METER_NUMBER`='NP-1353-'";
错误:
UPDATE `deposit_admin_report` SET `READING`=395,`Timestamp`=2015-11-27 09:08:33 WHERE `METER_NUMBER`='NP-1353-'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '09:08:33 WHERE `METER_NUMBER`='NP-1353-'' at line 1
列Timestamp的类型为#34;时间戳"默认为" null"在mysql表中。
如果有人能帮助我,我们将不胜感激。
提前致谢
答案 0 :(得分:2)
这就是你需要的:
$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`=$item,`Timestamp`='".$today."' WHERE `METER_NUMBER`='NP-1353-'";
还有另一种方式:
只需使用NOW()
像这样:
$ sql =“UPDATE deposit_admin_report
SET READING
='$ item',Timestamp
= NOW()
在哪里METER_NUMBER
='NP-1353 - '“;
就是这样:))
答案 1 :(得分:0)
使用MySQL NOW()
或将此$item
更改为此'$item'
$sql = "UPDATE `deposit_admin_report` SET `READING`='$item',`Timestamp`=NOW()
WHERE `METER_NUMBER`='NP-1353-'";
答案 2 :(得分:0)
$today = date("Y-m-d H:i:s");
$sql = "UPDATE `deposit_admin_report` SET `READING`= '" . $item . "',`Timestamp`= '" . $today . "' WHERE `METER_NUMBER`='NP-1353-'";
它会将您日期中的空格视为单独的单词,而不是您的时间戳的值。
此外,使用NOW()
$sql = "UPDATE `deposit_admin_report` SET `READING`= '" . $item . "',`Timestamp`= 'NOW()' WHERE `METER_NUMBER`='NP-1353-'";
答案 3 :(得分:0)
日期字段接受一个字符串,您应将其括在单引号中。
$sql = "UPDATE `deposit_admin_report` SET `READING`= $item, `Timestamp`= '$today' WHERE `METER_NUMBER`='NP-1353-'";
答案 4 :(得分:0)
这个问题已经回答了。想要注意在NOW()
架构中使用Master / Slave
的警告。
如果从服务器的时区与主服务器的时区不同,则存储在主服务器上的时间戳值将与从服务器上的时间戳值不同。
建议使用以下步骤:
date_default_timezone_set('UTC'); // UTC is an example
$today = date("Y-m-d H:i:s");
$sql = "
UPDATE `deposit_admin_report`
SET `READING`=$item,`Timestamp`='".$today."'
WHERE `METER_NUMBER`='NP-1353-'
";