php - 如何使用 PHP 函数中的日期和时间查询数据库

标签 php mysql sql date

如何修复我的查询代码,使其使用日期和时间搜索数据库,但日期是函数中的变量?我是 PHP 和 SQL 的新手,不知道圆点 (.) 和引号 (""'') 是如何工作的。我该如何修复这段代码?

WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59'

请看下面的代码

function FSearchDate($FixtureDate) {
    try {
        $conn = new PDO("mysql:host=" . $GLOBALS['servername'] . ";dbname=DATABASE_NAME", $GLOBALS['username'], $GLOBALS['password']);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $statement = $conn->query("
        SELECT Fixtures.fixtureid AS FixtureID, 
        Fixtures.date AS Date, 
        Fixtures.week AS Week, 
        Fixtures.home_team AS HomeTeam, 
        Fixtures.away_team AS AwayTeam,
        FixtureScores.home_team AS HomeScore, 
        FixtureScores.away_team AS AwayScore
        FROM Fixtures
        INNER JOIN FixtureScores ON Fixtures.fixtureid=FixtureScores.fixtureid 
        WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59'"
        );
        $result = $statement->fetch();

        if ($result == null) { // Fixture ID Doesn't Exist
            echo '<script type="text/javascript">alert("The Fixture ID entered is not valid. Please enter a valid Fixture ID");</script>';
        } else {
            $GLOBALS['FixtureID'] = $result[0];
            $GLOBALS['FixtureDate'] = $result[1];
            $GLOBALS['FixtureWeek'] = $result[2];
            $GLOBALS['FixtureHomeTeamName'] = $result[3];
            $GLOBALS['FixtureAwayTeamName'] = $result[4];
            $GLOBALS['FixtureHomeTeamScore'] = $result[5];
            $GLOBALS['FixtureAwayTeamScore'] = $result[6];
        }
    }
    catch(PDOException $e) {
        echo "An problem occured: " . $e->getMessage();
    }

    $conn = null;
}

最佳答案

您的查询是错误的:

WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59'"

您正在尝试使用 =>=<这不符合您的预期。

=>是关联数组的分隔符。

那些应该读作 >=<=分别表示“大于或等于”和“小于或等于”。

注意: =<不存在且不是有效的运算符/分隔符。

大声说出来:“小于或等于”。我们从不说“等于或小于”。

此外,您可能此处为 FSearchDate() 设置了一个变量范围方法,您可能必须将数据库连接传递到该方法。然而,情况可能并非如此。

关于php - 如何使用 PHP 函数中的日期和时间查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47351996/

相关文章:

php - cron作业php中的无限循环

php - 如何获取半径内的最大 GPS 位置

php - Redis 多个连接以 TIME_WAIT 状态打开

php - 如何修复 Firefox 尝试 "Save image as".htm?

php - 如何从MySQL表中选择所有日期之间的列并按列排序

mysql - 使用 JOIN 查询速度慢

sql - 多个插入与具有多个值的一个插入

jquery - DataTables 如何通过服务器端处理输出表格?

php - 在没有 Cron Jobs 的情况下运行 PHP 文件?

sql - 当前组的历史总和