我有这样一个查询: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()' –