php - parameter - Número de parámetro inválido: el número de variables enlazadas no coincide con el número de tokens en Doctrine
invalid parameter number number of bound variables does not match number of tokens php (1)
¡No rodee ninguno de los parámetros en su texto de consulta con comillas!
->add(''where'', "c.owner = ?1 AND c.contact = u.id AND u.username LIKE ''?2''")
debiera ser
->add(''where'', "c.owner = ?1 AND c.contact = u.id AND u.username LIKE ?2")
Usando Doctrine 2 quiero obtener algunos usuarios que son contactos de otro usuario. El user
tabla contiene la asignación entre esos usuarios. La consulta en la función devolverá el siguiente error:
Número de parámetro inválido: el número de variables enlazadas no coincide con el número de tokens.
Sin embargo, a mi mejor entender $str
se establece en "b" y $ownerId
se establece en "2" y ambos son asignados por la función setParameters
.
protected function getContactBySubstring($str, $ownerId) {
echo $str;
echo $ownerId;
$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder();
$qb->add(''select'', ''u'')
->add(''from'', ''/Paston/VerBundle/Entity/User u, /Paston/VerBundle/Entity/Contact c'')
->add(''where'', "c.owner = ?1 AND c.contact = u.id AND u.username LIKE ''?2''")
->add(''orderBy'', ''u.firstname ASC, u.lastname ASC'')
->setParameters(array (1=> $ownerId, 2=> ''%''.$str.''%''));
echo $qb->getDql();
$query = $qb->getQuery();
$users = $query->getResult();
foreach($users as $user)
echo $user->getUsername();
exit;
//return $contacts;
}