我有這樣一個查詢:PDO綁定參數不起作用
$stmt = $db->query('
SELECT e.id
FROM `entity` e
WHERE e.deleted = 0 AND e.published = 1 AND e.date <= CURDATE() ' .
(!empty($_SESSION['filter']) ? ' AND e.category = :category' : '')
);
if (!empty($_SESSION['filter'])) {
$stmt->bindValue('category', $_SESSION['filter'], PDO::PARAM_INT);
}
$entities = $stmt->fetchAll(PDO::FETCH_ASSOC);
我在catgeory 1
和$_SESSION['filter']
一些條目設置:
string(1) "1"
但它不加載任何條目也不會出現任何錯誤。
我嘗試過:
- 重命名
category
別的東西,像myvalue
- 建立一個新的變量:
$x = 1; $stmt->bindValue('category', $x, PDO::PARAM_INT);
- 直接編輯查詢:
' AND e.category = 1'
或' AND e.category = $_SESSION['filter']'
出於所有可能性只有最後一個工作。這也是我實際上不想使用的那個。我怎樣才能解決這個問題?
你必須執行'()'語句,您可以'使用fetchall()' –