在mysql查询中使用UNIX_TIMESTAMP()更新列

时间:2014-05-24 04:09:33

标签: php mysql sql unix-timestamp

今天做了更多的阅读和研究后,我正在改变我在数据库中存储时间戳的方式,因此它们都是unix时间戳。以下查询中的UNIX_TIMESTAMP()无效,不确定原因。没有错误,但执行查询时当前值不会更改。

预期结果是更新时的unix时间戳(ex 1400899111)。 dtCurrLogin是INT类型,不是null,默认为0。

$stmt = $db->prepare("UPDATE admin SET lastIP = currIP, currIP = ?, dtLastLogin = dtCurrLogin , dtCurrLogin = UNIX_TIMESTAMP() WHERE account_id = ?");
$stmt->execute(array($_SERVER['REMOTE_ADDR'], $account_id));

这真的没有任何意义......我可以直接将查询输入phpmyadmin并且它可以工作...减去绑定和预处理语句。因此,在我的PHP中必须有一些问题导致问题。

1 个答案:

答案 0 :(得分:1)

我认为你想要的是让dtCurrLogin =当前的unix时间戳。

UNIX_TIMESTAMP(now()) 

这样:

$stmt = $db->prepare("UPDATE admin SET lastIP = currIP, currIP = ?, dtLastLogin = dtCurrLogin , dtCurrLogin = UNIX_TIMESTAMP(now())  WHERE account_id = ?");
$stmt->execute(array($_SERVER['REMOTE_ADDR'], $account_id));