我有這樣的SQL語句:bindParam導致致命錯誤
$sql = "SELECT c.creating_user FROM cdiscount_listing AS c WHERE c.created_at > :before_not_keyword AND c.created_at < :after_not_keyword";
$query = $db->query($sql);
$query->bindParam(":before_not_keyword", $date." 23:59:59", PDO::PARAM_STR);
$query->bindParam(":after_not_keyword", $date." 00:00:00", PDO::PARAM_STR);
$query->execute();
$listings = $query->fetchAll();
這給標準SQLSTATE[42000]: Syntax error or access violation
錯誤。但是,當我將參數值硬編碼到查詢中時,錯誤消失了。 PDO本身有缺陷還是我錯過了一些東西?
請注意,爲了與遺留代碼保持一致,正在創建日期。
日期格式:2015-07-01 00:00:00
什麼是'$ date'?如同在問題中增加的那樣。 – Andrew
用'$ db-> prepare'替換'$ db-> query' – Daan
還必須通過引用來綁定參數 - 我非常確定'$ date。「00:00:00」'作爲參數不是去上班。 – CD001