无法在年末检查中运行MySQL查询

时间:2014-01-01 05:06:34

标签: php mysql dreamweaver

我想在年底运行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);

4 个答案:

答案 0 :(得分:2)

$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。

答案 1 :(得分: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,您可以避免因手动将其放入每张支票而感到困惑。

答案 2 :(得分:1)

您的错误原因:

您的括号仍处于打开状态,计算您拥有的(个数量,以及您在第二行中拥有的)个数量。

如果您只是在{之前添加另一个结束括号,那么您将没事。

即,(注意第二行的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);
}

答案 3 :(得分:1)

有几件事。首先,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);
}