2010-12-28 4 views
7
$query = $connect->prepare("SELECT users.firstname, users.lastname, users.id 
FROM users INNER JOIN users_friends ON users.id=users_friends.uID 
WHERE bID=:USER AND type =:type AND accepted = '1' AND (users.firstname LIKE '%:queryString%' OR users.lastname LIKE '%:queryString%') 
LIMIT 10"); 
$query->bindValue(":queryString", $queryString); 
$query->bindValue(":type", $type); 
$query->bindValue(":USER", $USER); 
$query->execute(); 

이것은 내가 가지고있는 것입니다.어떻게 PDO에서 bindValue를 %로 사용합니까?

임 내가 bindValue 시도하고 준비된 명령문에서 사용할 때 오류를 갖는

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' 

내가이 문제를 어떻게 해결할 수 (% 검색어 문자열 %)을?

답변

11

당신은

"... LIKE :query ..." 

을해야하고

$query->bindValue(":query", $queryString); //where $queryString is '%someQuery%' 
+1

그것은'%가'와일드 카드 또는 리터럴 %가 될 수 있음을 주목할 가치가있다. 이 코드는 어떤 구별도하지 않습니다. –

관련 문제