【问题标题】:MYSQL compare date time not returning any results [duplicate]MYSQL比较日期时间不返回任何结果[重复]
【发布时间】:2020-06-05 20:32:31
【问题描述】:

我想在 2 个特定日期之间进行比赛。 在 MySQL 终端中,我硬编码了以下查询并返回了以下行(以检查我的查询是否正确)

查询

SELECT * 
FROM schedule 
WHERE gameDateTime BETWEEN '2020-02-21 00:00:00' 
                       AND '2020-02-25 15:15:00'

但是,当我通过 PHP 运行这个简单的查询时,我没有得到任何结果

PHP 代码

$sql = "SELECT * FROM `schedule` WHERE `gameDateTime` BETWEEN '2020-02-21 00:00:00' AND '2020-02-25 15:15:00'";
    $stmnt = $db->prepare($sql);
    $games = $stmnt->fetchAll();
    foreach ($games as $game){
        echo $game['homeTeam'];
        echo 'VS';
        echo $game['awayTeam'];
        echo '<hr />';

    }

调试

  • 我做了一个 select(*) 以确保我可以从我的数据库中检索数据
  • gameDateTime 是一个 datetiime() 列

帮助赞赏

【问题讨论】:

  • 您尚未执行查询。 $stmnt->execute() 丢失

标签: php mysql database


【解决方案1】:

您缺少$stmnt-&gt;execute()

请注意,如果您希望立即运行查询而不是先进行准备,可以将 -&gt;prepare 替换为 -&gt;query

更多信息:PDO's query vs execute

【讨论】:

    【解决方案2】:

    您还没有执行查询:

    $sql = "SELECT * FROM `schedule` WHERE `gameDateTime` BETWEEN '2020-02-21 00:00:00' AND '2020-02-25 15:15:00'";
        $stmnt = $db->prepare($sql);
        $stmnt = $stmnt->execute();
        $games = $stmnt->fetchAll();
        foreach ($games as $game){
            echo $game['homeTeam'];
            echo 'VS';
            echo $game['awayTeam'];
            echo '<hr />';
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多