PHP PDO"选择"查询

时间:2016-03-13 12:25:42

标签: php mysql pdo

我试图将两个参数绑定到准备好的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次我的参数值和名称,他们没事。

我不明白为什么这不适用于两个参数。请指教。

1 个答案:

答案 0 :(得分:4)

您无法使用HashMap类型将PDO中的列名绑定。理想情况下,您不应该绑定查询中的列,但如果您确实想这样做,请使用PARAM_STR数据类型:

PARAM_INT