हाय मुझे निम्न क्वेरी मिल गई है लेकिन यह काम नहीं कर रहा है।सिद्धांत 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 ...
मैं किसी भी मदद
आपको हमेशा अपने चर को सिद्धांत क्वेरी के पैरामीटर के रूप में पास करना चाहिए! –
क्या आप एक से कई अपडेट के लिए एक उदाहरण भी प्रदान कर सकते हैं? –
आप $ qb-> अद्यतन (...) -> सेट ('u.username', $ qb-> createNamed पैरामीटर ($ उपयोगकर्ता नाम) का उपयोग भी कर सकते हैं) '' और सेट -> पैरामीटरमीटर भाग को छोड़ दें। यह आईएमओ सबसे अच्छा तरीका है। एक समान विधि '' -> बनानाPositionalParameter() '' है। Http://doctrine-dbal.readthedocs.org/en/latest/reference/query-builder.html#binding-parameters-to-placehold देखें –