PDO - 在bindParam中使用LIKE

时间:2014-11-20 23:04:07

标签: php sql pdo sqlbindparameter

我正在测试一个小型搜索功能:

但是我遇到了一个我似乎无法解决的错误。您可以在此处查看PDO查询:

$search = "test1"; //later to be changes to $_POST ['search'];

$sql = "SELECT id, name FROM clients WHERE name LIKE CONCAT('%',:name,'%')";
$stm = $db->prepare ($sql);
$stm->bindParam ( ":name", $search );
$stm->execute ();
$result = $stm->fetchAll();

正如您所看到的,我尝试将参数%:name%与我的查询绑定,但我不知道这实际上是否可行?

我解除了错误:未捕获的异常' PDOException'消息' SQLSTATE [42000]:.....

我可以在错误中看到''已被放在test1%&test;'%

我尝试的是什么,或者我需要做这样的事情吗?

$query = "SELECT id, name FROM clients WHERE name like :name order by id LIMIT 5";

$sql->execute(array(":name" => "%" .$search . "%"));

1 个答案:

答案 0 :(得分:6)

使用

LIKE CONCAT('%', :name, '%')