我正在测试一个小型搜索功能:PDO - 在bindParam中使用LIKE
但是我遇到了一个我似乎无法解决的错误。你可以看到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();
正如你所看到的,我想要绑定的参数%:名称%从我的查询,但我不知道是否这实际上可能吗?
我revieve错误:未捕获的异常“PDOException”有消息“SQLSTATE [42000]:.....
而且我可以在错误看到‘’已经把周围的测试1%”测试1' %
正是我想要的可能,还是我需要做这样的事情?
$query = "SELECT id, name FROM clients WHERE name like :name order by id LIMIT 5";
$sql->execute(array(":name" => "%" .$search . "%"));
这个问题已经有答案了结帐的URL。 http://stackoverflow.com/questions/11068230/using-like-in-bindparam-for-a-mysql-pdo-query – jamseernj 2014-11-20 23:22:01
你拼写WHERE为'WHERE'。 – duskwuff 2014-11-20 23:23:03