2010-12-28 8 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(); 

Đây là những gì tôi có.Cách bindValue với% trong PDO?

Im có lỗi khi tôi cố gắng bindValue và sau đó sử dụng nó trong các tuyên bố chuẩn bị (%: QueryString%)

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

Làm thế nào tôi có thể giải quyết này?

Trả lời

11

Bạn nên làm

"... LIKE :query ..." 

và sau đó

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

Nó đáng chú ý là '% 'có thể là một ký tự đại diện hoặc% theo nghĩa đen. Mã này không phân biệt. –