php - Invalid parameter number: number of bound variables does not match number of tokens in Doctrine -
using doctrine 2 want users contacts of user. table user
contains mapping between users. query in function return following error:
invalid parameter number: number of bound variables not match number of tokens.
however best understanding $str
is set "b" , $ownerid
set "2" , both assigned setparameters
function.
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 , c.contact = u.id , u.username '?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 $user) echo $user->getusername(); exit; //return $contacts; }
don't surround of parameters in query text quotes!
->add('where', "c.owner = ?1 , c.contact = u.id , u.username '?2'")
should be
->add('where', "c.owner = ?1 , c.contact = u.id , u.username ?2")
Comments
Post a Comment