检查db表字段(datetime)是否为空

Tur*_*Ali 3 php mysql database datetime mysqli

用户注册成功后,我的MySQL数据库表默认0000-00-00 00:00:00放入lastlogin_datelastlogout_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} 
Run Code Online (Sandbox Code Playgroud)

但是,似乎空在这种情况下不起作用.如何检查lastlogin_date字段是否为空?if($ lastlogin =='0000-00-00 00:00:00')??

Vin*_*ard 6

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 = ?;
Run Code Online (Sandbox Code Playgroud)

当您获取查询时,您可以使用$row['has_logged_in'],这是一个布尔值.