mysql NOW() + $seconds php?

5

能否使用mysql的NOW()函数并增加或减少秒数呢?

就像这样;

$q = $dbc -> prepare ("UPDATE account SET time = NOW() + $seconds WHERE id = ?");

谢谢

5个回答

17

1

您可以使用DATE_ADD()函数将秒数添加到其中:

$q = $dbc -> prepare ("UPDATE account SET time = DATE_ADD(NOW(), INTERVAL $seconds SECONDS) WHERE id = ?");

请注意,如果我将 $seconds = "little johhny tables;" 注入到您的 PHP 中,那么您就会有一个漏洞。您可能希望使用您的 DB 层占位符系统(即 ?)而不是简单地注入 $seconds。 - berkes

1
$q = $dbc -> prepare ("UPDATE account SET time = date_add(NOW() + INTERVAL $seconds SECOND) WHERE id = ?");

-1

我不知道你的dbc类的具体用法,但很可能你只是想添加另一个参数:

$q = $dbc->prepare ("UPDATE account SET time = NOW() + ? WHERE id = ?");
$q->execute($seconds, $id);

-1

,这是不可能的。

你可以这样做:

$time = date('Y-m-d H:i:s', strtotime("+2 seconds"));
$q = $dbc->prepare ("UPDATE account SET time = '$time' WHERE id = ?");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接