今天做了更多的阅读和研究后,我正在改变我在数据库中存储时间戳的方式,因此它们都是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中必须有一些问题导致问题。
答案 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));