【发布时间】:2018-05-01 07:26:27
【问题描述】:
如何修复我的查询代码,以便它使用日期和时间搜索数据库,但日期是函数中的变量?我是 PHP 和 SQL 的新手,不知道 Dots (.) 和 Quotations 如何完全工作 ("" '')。如何修复这段代码?
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;
}
【问题讨论】:
-
尝试不使用
FSearchDate()方法的查询,它有效吗?如果是这样,它是一个变量范围。 -
请查阅有关 PHP 和 MySQL 集成的教程。 “点”用于字符串连接,引号类型(' vs ")很重要,尤其是在您使用它们的上下文中。