我在我的用户表中添加了一个新行,以显示每个用户的创建日期。我尝试了timestamp和datetime类型,但它仍然在每个用户旁边显示我0000-00-00 00:00:00 :00。
下面是将行添加到用户表中的代码
$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);
$username = trim($_REQUEST['username']);
$password = trim($_REQUEST['password']);
$email = trim($_REQUEST['email']);
$created = strftime("%Y-%m-%d %H:%M:%S", time());
$insert_sql = sprintf("INSERT INTO users (first_name, last_name, username, password, email, created)" .
"VALUES('%s', '%s', '%s', '%s', '%s', '%s');",
mysql_real_escape_string($first_name),
mysql_real_escape_string($last_name),
mysql_real_escape_string($username),
mysql_real_escape_string(crypt($password, $username)),
mysql_real_escape_string($email),
mysql_real_escape_string($created));
mysql_query($insert_sql) or die(mysql_error());下面是显示信息的代码
$select_users = "SELECT * FROM users";
$result = mysql_query($select_users);
while ($user = mysql_fetch_array($result)) {
$user_row = sprintf(
"<td><input type='checkbox' name='checkbox[]' id='checkbox[]' value='%d'/></td>" .
"<td>%s %s</td> " .
"<td>%s</td>" .
"<td><a href='mailto:%s'>%s</a></td> " .
"<td>%s</td>" .
"<td><a href='javascript:delete_user(%d);'><img class='delete_user' src='images/trash.png' alt='' title='' border='0' /></a></td>",
$user['user_id'], $user['first_name'], $user['last_name'], $user[username],
$user['email'], $user['email'], $user['created'], $user['user_id']);
echo $user_row;除了创建日期显示0000-00-00 00:00:00之外,我正确显示了所有字段。我不知道我做错了什么。谢谢你的帮助。
编辑:我已经有一个名为"updated“的字段,它使用"Current_timestamp”。
发布于 2012-09-21 20:17:48
您可以在名为created的数据库中创建一个类型为timestamp的字段,并将默认值设置为CURRENT_TIMESTAMP,而不是使用php设置时间。这将自动完成你所需要的,而不需要php。代码如下:
ALTER TABLE `users` ADD COLUMN `created` timestamp DEFAULT CURRENT_TIMESTAMP;发布于 2012-09-21 20:18:10
MySQL可以在创建记录时插入的字段上添加时间戳。
在您的SQL中,为创建的:
`Created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP您不需要任何PHP代码来处理时间戳。
发布于 2012-09-21 20:15:28
尝试$created = date("m-d-y H:i:s",time());
https://stackoverflow.com/questions/12530351
复制相似问题