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

如何使用PHP函数中的日期和时间查询数据库,php,mysql,sql,date,Php,Mysql,Sql,Date,如何修复查询代码,使其使用日期和时间搜索数据库,但日期是函数中的变量?我不熟悉PHP和SQL,不知道点()和引号是如何完全工作的(“”)。如何修复这段代码 WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59' 其中Fixture.date=>'$FixtureDate 00:00:00'和Fixture.date=

如何修复查询代码,使其使用日期和时间搜索数据库,但日期是函数中的变量?我不熟悉PHP和SQL,不知道点(
)和引号是如何完全工作的(
“”
)。如何修复这段代码

WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59'
其中Fixture.date=>'$FixtureDate 00:00:00'和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;
}
函数FSearchDate($FixtureDate){
试一试{
$conn=new-PDO(“mysql:host=”.$GLOBALS['servername'],$GLOBALS['username'],$GLOBALS['password']);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
$statement=$conn->query(“
选择Fixtures.fixtureid作为fixtureid,
fixture.date作为日期,
一周又一周,
Fixtures.home_团队作为HomeTeam,
Fixtures.AwayTeam团队作为AwayTeam,
FixtureScores.home_团队作为HomeScore,
FixtureScores.Aways\u团队作为AwayScore
从固定装置
夹具上的内部联接FixtureScores.fixtureid=FixtureScores.fixtureid
其中Fixture.date=>“$FixtureDate 00:00:00”和Fixture.date=<”$FixtureDate 23:59:59“
);
$result=$statement->fetch();
如果($result==null){//Fixture ID不存在
echo“警报(“输入的设备ID无效。请输入有效的设备ID”);
}否则{
$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];
}
}
捕获(PDO$e){
echo“出现问题:”..e->getMessage();
}
$conn=null;
}

您可以在这里
之间使用

$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 Fixtures.date BETWEEN 'date('Y-m-d H:i:s',$FixtureDate)' AND 'date('Y-m-d H:i:s',$FixtureDate)'"
    );
请检查此声明

WHERE Fixtures.date BETWEEN 'date('Y-m-d H:i:s',$FixtureDate)' AND 'date('Y-m-d H:i:s',$FixtureDate)'
您的查询是错误的:

WHERE Fixture.date => '$FixtureDate 00:00:00' AND Fixture.date =< '$FixtureDate 23:59:59'"
其中Fixture.date=>“$FixtureDate 00:00:00”和Fixture.date=<“$FixtureDate 23:59:59”

您正在尝试使用
=>
=在不使用
FSearchDate()
方法的情况下尝试查询,是否有效?如果有效,则它是一个可变范围。请参阅有关PHP和MySQL集成的教程。“点”用于字符串连接,引号类型('vs')很重要,尤其是在您使用它们的上下文中。