Hola Tengo la siguiente consulta, pero parece que no funciona.Doctrina 2: consulta de actualización con generador de consultas
$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();
Esto devuelve el siguiente mensaje de error:
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 ...
Me alegraría de cualquier ayuda
¡Siempre debe pasar sus variables como parámetro a la consulta de Doctrine! –
¿También puede proporcionar un ejemplo para las actualizaciones de uno a muchos? –
también puede '' usar $ qb-> update (...) -> set ('u.nombre de usuario', $ qb-> createNamedParameter ($ username)) '' y omitir la parte -> setParameter. Esa es la OMI de la mejor manera. Un método similar es '' -> createPositionalParameter() ''. Ver http://doctrine-dbal.readthedocs.org/en/latest/reference/query-builder.html#binding-parameters-to-placeholders –