我正在測試一個小型搜索功能: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