【问题标题】:Can’t run MySQL query with an end of the year check [closed]无法通过年终检查运行 MySQL 查询 [关闭]
【发布时间】:2014-01-01 05:06:33
【问题描述】:

我想在年底运行 MySQL 查询。查询正常。但我认为 PHP 代码不能很好地工作。在 Dreamweaver 中,第二行显示错误。我该如何解决这个问题:

$gdate = date("Y-m-d", strtotime('today'));
if($gdate==date("d-m-Y",strtotime('last day of december')){
    $queryrun=mysql_query( $query);

【问题讨论】:

  • 你遇到了什么错误?
  • 请向我们展示您收到的错误消息..
  • @csmckelvey 在dreamweawer 的第89 行附近指示红色标记
  • @Damith 在dreamweawer 的第89 行附近指示红色标记
  • @SasinduRHN 当我们询问错误时,我们的意思是错误消息是什么,而不是它碰巧出现在哪一行。

标签: php mysql dreamweaver


【解决方案1】:
$gdate = date("Y-m-d", strtotime('today'));
if($gdate==date("Y-m-d",strtotime('last day of december'))){
    $queryrun=mysql_query( $query);

您正在检查 d-m-Y 这是错误的。两种日期格式都不相同,并且查询未运行。并且还缺少一个结束 ) 括号。

注意:mysql_query 将被弃用。

【讨论】:

    【解决方案2】:

    查看您的代码,答案非常明显。这是我的测试代码:

    $gdate = date("Y-m-d", strtotime('today'));
    $lastdate = date("d-m-Y",strtotime('last day of december'));
    
    echo $gdate . '<br />';
    echo $lastdate . '<br />';
    

    我的输出是:

    2014-01-01
    31-12-2014
    

    因为在一行中有Y-m-d,而在另一行中有d-m-Y

    我建议这样做:

    $date_format = "Y-m-d";
    $gdate = date($date_format, strtotime('today'));
    $lastdate = date($date_format,strtotime('last day of december'));
    if ($gdate == $lastdate) {
      $queryrun=mysql_query( $query);
    }
    

    通过将$date_format 设置在一个位置,您可以避免在每次检查时手动放置混淆。

    【讨论】:

    • 感谢它运行良好。祝你新年快乐
    【解决方案3】:

    有几件事。首先,date 不必指定时间戳。如果您省略该参数,则它仅使用当前日期。无论如何,strtotime('today') 是一个不好的方法。最好用time(),不用做任何解析。

    其次,你正在颠倒你的论点。你打电话给date("Y-m-d") 然后date("d-m-Y") 然后比较它们。它们永远不会匹配,因为顺序不同。

    $gdate = date("Y-m-d");
    if($gdate==date("Y-m-d", strtotime('last day of december')){
        $queryrun=mysql_query( $query);
    }
    

    【讨论】:

      【解决方案4】:

      你的错误原因:

      你还有一个括号打开,数一下你有多少个(,以及第二行有多少个)

      如果你只是在 { 之前添加另一个右括号,你会没事的。

      即(注意第二行的 3 个右括号

      $gdate = date("Y-m-d", strtotime('today'));    
      if($gdate==date("d-m-Y",strtotime('last day of december'))){
          $queryrun=mysql_query( $query);
      }
      

      您的下一期:

      虽然上述方法将修复您的语法并允许代码运行,但您仍然会因为您的日期格式而遇到问题。

      确保您使用的日期格式是一致的。

      您的$gdate 使用的格式与您在if 语句中检查的格式不同。

      $gdate = date("d-m-Y", strtotime('today'));    
      if($gdate == date("d-m-Y",strtotime('last day of december'))){
          $queryrun = mysql_query( $query);
      }
      

      【讨论】:

      • 真的……有人反对这个?它指出了错误的原因,这是发布问题的最初原因,然后解决了他在语法修复后必然会遇到的问题。
      • 我会帮你的! +1!
      • 哈哈,谢谢@csmckelvey!
      • 没问题,我讨厌没有任何解释的错误投票!
      猜你喜欢
      • 2017-10-29
      • 2020-09-04
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多