用户注册成功后,MySQL数据库表默认将0000-00-00 00:00:00
放入lastlogin_date
和lastlogout_date
字段。两个字段的类型都是datetime
。在我的php代码中,我检查用户是否第一次进入网站
$lastlogin = $db->query("SELECT `lastlogin_date` FROM `users` WHERE `id`='$_SESSION[id]'");
$row = $lastlogin->fetch_array(MYSQLI_BOTH);
$lastlogin=$row['lastlogin_date'];
if(empty($lastlogin))
{ do something}
但是,在这种情况下,空似乎不起作用。如何检查lastlogin_date
字段是否为空?if ($ lastlogin = = 0000-00-00就是)? ?
0000-00-00 00:00:00
是一个值。如果您不想存放任何值,则应该存储NULL
,这将更有意义。NULL是值的缺失。
话虽如此,我认为最好的方法是选择一个布尔值而不是你的列:
-- (lastlogin_date is NULL) if you change your table structure
SELECT (lastlogin_date = '0000-00-00 00:00:00') as has_logged_in
FROM users
WHERE id = ?;
当你获取你的查询,你可以使用$row['has_logged_in']
,这是一个布尔值。