我試圖如下:PHP PDO聲明:引號中引號引起查詢失敗
$stmt = $db->prepare("SELECT * FROM table WHERE date
BETWEEN :year-:month-01 AND :year-:month-01 +
INTERVAL 1 MONTH");
$stmt->bindValue(':year', $year, PDO::PARAM_STR);
$stmt->bindValue(':month', $_POST["month"], PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
當$year
等於2015年和$_POST["month"]
等於06,查詢應該給結果,但事實並非如此。我可以讓$year
a PDO::PARAM_INT
,但這仍然讓我,這是一個字符串(01 .. 12)。
然而,這種小的調整測試時,取出結合...
BETWEEN "2015-06-01" AND "2015-06-01" +
INTERVAL 1 MONTH");
查詢成功,結果表明。我想這是因爲日期間,該服務器收到這個樣子:
'2015'-'06'-01
所以,我的問題如下:
如何「逃離」或「刪除」備PDO內報價聲明? 應該有一個優雅的方法來解決這個問題。
編輯,備案:我忘了引號添加到我的 '調整'。 2015-06-01的兩個實例都應該在引號中。我已經編輯了我的問題。 – Dave 2015-01-26 23:19:46