$日子她念叨= 2;
如何将此变量放入此mysql查询中?
这些不起作用:
mysql_query("UPDATE users (validity) VALUES (NOW() + INTERVAL '$someDays' DAY) WHERE id='$id'");
mysql_query("UPDATE users (validity) VALUES (NOW() + INTERVAL $someDays DAY) WHERE id='$id'");
mysql_query("UPDATE users (validity) VALUES (NOW() + INTERVAL '".$someDays."' DAY) WHERE id='$id'");
mysql_query("UPDATE users (validity) VALUES (NOW() + INTERVAL ".$someDays." DAY) WHERE id='$id'");
答案 0 :(得分:3)
最可读的方法就是这样 -
"UPDATE `users` SET `validity` = DATE_ADD(NOW(), INTERVAL '".$someDays."' DAY) WHERE `id`='".$id."' "
您尝试使用INSERT语法而不是UPDATE语法。此外,如果您要在查询中以某种方式使用变量,则应对查询中的所有变量执行此操作,以保持一致性和可读性。
请don't use mysql_*
functions,不再维护它们officially deprecated。请改为了解prepared statements,并使用PDO或MySQLi。 This article会帮助您做出决定。
答案 1 :(得分:2)
根据您使用INSERT
语法但尝试执行UPDATE
的评论。以下内容应该有效:
mysql_query("UPDATE users SET validity = DATE_ADD(NOW(), INTERVAL $someDays DAY) WHERE id = $id");
编辑:
要将$someDays
天添加到您可以执行的现有validity
值
… SET validity = DATE_ADD(validity, INTERVAL $someDays DAY) …
如果您需要将其设置为特定时间,可以使用PHP进行日期添加:
$userVal='2014-11-06 20:52:05';
$newUserVal = date("Y-m-d H:i:s", strtotime('+ '.$someDays.' days', strtotime($userVal)));
mysql_query("UPDATE users SET validity = '$newUserVal' WHERE id = $id");
答案 2 :(得分:0)
尝试使用此日期在当前日期添加天数。您不能同时执行两项操作,因此请尝试更新或尝试插入。
mysql_query("insert into users (validity) VALUES (select DATE_ADD(NOW(), INTERVAL ".$someDays." DAY) );