數據庫SELECT查詢失敗使用PDO,工作在phpMyAdmin
start end
2012-07-21 15:40:00 2012-07-28 21:00:00
2012-07-23 20:00:00 2012-07-27 13:00:00
這是我通過phpmyadmin運行,並返回我正確的行
SELECT *
FROM `events`
WHERE "2012-07-25 15:40"
BETWEEN START AND END
但在我的PHP代碼,我貼只下面我無法得到任何結果。 (表格提交的所有數據都已過帳100%)。我錯過了什麼?
$question= 'SELECT * FROM events WHERE ';
$hasTime = false;
if(!empty($time)) { // @note better validation here
$hasTime = true;
$question .= 'WHERE time=:time BETWEEN start AND end';
}
$hasCity = false;
if(!empty($city)) { // @note better validation here
$hasCity = true;
$question .= 'AND city=:city ';
}
$hasType = false;
if(!empty($type)) { // @note better validation here
$hasType = true;
$question .= 'AND type=:type';
}
$query = $db->prepare($question);
if($hasTime)
$query->bindValue(":time", $time, PDO::PARAM_INT);
if($hasCity)
$query->bindValue(":city", $city, PDO::PARAM_INT);
if($hasType)
$query->bindValue(":type", $type, PDO::PARAM_INT);
$query->execute();
這段代碼的實際結果SQL查詢是什麼?看起來它在'WHERE'子句中有更多的東西,而不僅僅是你在PHPMyAdmin中測試的東西。此外,它可能有一個或兩個語法錯誤。例如,它看起來像是在加倍'WHERE'關鍵字。我想如果是這樣的話,數據庫會返回一個錯誤。是嗎? – David 2012-07-25 12:57:37
PDO :: PARAM_INT - 應該是字符串不是int – Cups 2012-07-25 13:09:54