안녕 다음 쿼리가 있지만 작동하지 않습니다.Doctrine 2 : 쿼리 작성기로 쿼리 업데이트
$q = $this->em->createQueryBuilder()
->update('models\User', 'u')
->set('u.username', $username)
->set('u.email', $email)
->where('u.id = ?1')
->setParameter(1, $editId)
->getQuery();
$p = $q->execute();
이 다음과 같은 오류 메시지가 반환
$qb = $this->em->createQueryBuilder();
$q = $qb->update('models\User', 'u')
->set('u.username', $qb->expr()->literal($username))
->set('u.email', $qb->expr()->literal($email))
->where('u.id = ?1')
->setParameter(1, $editId)
->getQuery();
$p = $q->execute();
중 하나를 :
Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message '[Semantical Error] line 0, col 38 near 'testusername WHERE': Error: 'testusername' is not defined.' in ...
내가
Doctrine 쿼리에 매개 변수로 변수를 전달해야합니다! –
또한 일대 다 업데이트에 대한 예제를 제공 할 수 있습니까? –
당신은 또한''$ qb-> update (...) -> set ('u.username', $ qb-> createNamedParameter ($ username))''을 사용하고 -> setParameter 부분을 생략 할 수 있습니다. 그것은 IMO가 가장 좋은 방법입니다. 비슷한 방법은''-> createPositionalParameter()''입니다. http://doctrine-dbal.readthedocs.org/en/latest/reference/query-builder.html#binding-parameters-to-placeholders를 참조하십시오. –