我试图将两个参数绑定到准备好的PDO select语句。这就是我到目前为止所做的:
$query = "select * from books where ? LIKE ?";
$result = $db->prepare($query);
$result->bindValue(1, $searchTerm, PDO::PARAM_STR);
$result->bindValue(2, "%$searchValue%", PDO::PARAM_STR);
$result->execute();
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
print_r($rows);
这成功执行但我没有返回任何行。
但是当我只使用1个参数时
$query = "select * from books where title LIKE ?";
$result->bindValue(1, "%$searchValue%", PDO::PARAM_STR);
我返回了行。我已经检查了1000次我的参数值和名称,他们没事。
我不明白为什么这不适用于两个参数。请指教。
答案 0 :(得分:4)
您无法使用HashMap
类型将PDO中的列名绑定。理想情况下,您不应该绑定查询中的列,但如果您确实想这样做,请使用PARAM_STR
数据类型:
PARAM_INT