2012-04-06 22 views
6

Burada sıkışıp kaldım ve bu sorunu çözmek için son 2 günümü harcadım ama başarısız oldum. Geçerli ayın girdilerini almak için depomun içinde bir sorgu yazıyorum. İşte benim sorgu: -INTERVAL 1 MONTH çalışmıyor Symfony2 doctrine ile?

$this->getEntityManager() 
->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id='.$id.' 
and a.date > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 1 MONTH)') 

Bu çalıştırmayı denediğinizde bana

[Syntax Error] line 0, col 133: Error: Expected Doctrine\ORM\Query\Lexer::T_COMMA, got '1' 

Ben bile this thing çalıştı ama bana yardımcı olmadı hata veriyor.

cevap

24

Sen bağlayıcı parametresini kullanmalısınız:

$query = $em->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id = :id and a.date > :date'); 
$query->setParameter('id', $id); 
$query->setParameter('date', new \DateTime('-1 month')); 
+0

Çok teşekkürler jkucharovic. Çok kullanışlıdır. INTERVAL 1 YIL – ScoRpion

+0

'$ query-> setParameter ('date', new \ DateTime ('- 1 yıl'));' – jkucharovic

+0

ile nasıl aynı şeyi yapabilirim ve şimdi nasıl kullanabilirim? Burada – ScoRpion