【问题标题】:PHP/MySql - DateTime detecting if values was assigned?PHP/MySql - DateTime 检测是否分配了值?
【发布时间】:2011-04-06 06:28:12
【问题描述】:

我想创建一个 if 语句,仅当日期时间值不为空时才运行 (0000-00-00 00:00:00)

我已通过查询将值传递给变量,但我如何确定它是否等于 0000-00-00 00:00:00

$query = "SELECT * FROM stats WHERE member_id='" . $_SESSION['SESS_MEMBER_ID'] . "' "; 
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
  $money = $row['money'];
  $bank_money = $row['bank_money'];
  $ap = $row['ap'];
  $exp = $row['exp']; 
  $last_ap_update = $row['last_ap_update'];
} 

if ($last_ap_update != ){ //Can i verify its NULL-ness here so i can run this if stament or run else?
}

【问题讨论】:

  • 看起来您最多获取一行。你不需要一个while循环。

标签: php mysql datetime


【解决方案1】:

$last_ap_update != strtotime("0000-00-00 00:00:00")

【讨论】:

    【解决方案2】:

    为什么不直接比较呢:

    if ($last_ap_update != "0000-00-00 00:00:00")
    {
          //do whatever.
    }
    

    【讨论】:

    • 哦,我不知道。我虽然不能将日期时间值与字符串进行比较。日期时间值只是格式化的字符串吗?
    【解决方案3】:

    你将它存储到一个变量中,这样你就可以将它用作一个字符串

    if ($last_ap_update != "0000-00-00 00:00:00"){
    }
    

    【讨论】:

      【解决方案4】:
      if ($last_ap_update != "0000-00-00 00:00:00"){
          [process]
      }
      

      【讨论】:

        【解决方案5】:

        为什么不将比较添加到您的 sql 语句中?

        $query = "SELECT * FROM stats WHERE member_id='" . $_SESSION['SESS_MEMBER_ID'] . "' AND  last_ap_update > 0";
        

        是的,您可以使用> 0,但如果您愿意,也可以使用<> '0000-00-00 00:00:00'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-04
          • 2018-01-29
          • 1970-01-01
          • 2020-10-20
          • 2012-03-15
          相关资源
          最近更新 更多