我很有意思,我应该在查询中使用Now()还是应该为此创建一个数组? 这是我的代码,它正在运行,但对此不确定..
$STH = $DBH->prepare('INSERT INTO users SET username = :username, password = :password, email = :email, joined = NOW(), usergroup = :usergroup, favourite_genre = :genre');
$STH->execute(array(
':username' => $username,
':password' => $password,
':email' => $email,
':usergroup' => 0,
':genre' => $_POST['genre']
));
答案 0 :(得分:1)
时间戳是一个时间戳,没有进一步的上下文,产生时间戳的方法几乎没有什么区别。目前,您正在数据库中生成该值,您建议在PHP应用程序中生成该值。
两种方法都会成功生成时间戳。
如果数据库正被其他应用程序使用,可能从其他系统访问,那么根据用例,您可能希望依赖数据库来生成时间戳,以使值在内部保持一致。尽管如此,它仍然需要高度精确才能发挥作用。
现在,如果具有不同位置/文化设置的多个系统正在访问数据库,那么将时间戳创建集中在数据库本身上肯定是个好主意。
答案 1 :(得分:0)
查询不应该采用这种形式吗?
$data = array(
"email" => $email,
"password" => $password,
"salt" => $salt,
"ingame" => $ingame,
"kiosk" => $kiosk,
);
$dbh->query("INSERT INTO ?n SET reg = NOW(), ?u","users", $data);
答案 2 :(得分:0)
日期时间字段不接受默认值,它们不是时间戳字段。
所以我这样做:
<?php
$STH = $DBH->prepare('INSERT INTO users SET username = :username, password = :password, email = :email, joined = :joined, usergroup = :usergroup, favourite_genre = :genre');
$STH->execute(array(
':username' => $username,
':password' => $password,
':email' => $email,
':joined' => date ("Y-m-d H:i:s", time());
':usergroup' => 0,
':genre' => $_POST['genre']
));
?>
见到你我的朋友!