안녕하세요 Doctrine DBAL 쿼리 작성기 (ORM 없음)와 SQLite에서 PHP Silex를 사용하고 있습니다. 그것은 일종의 작품, 그래서 내가 쿼리를 구축 할 수 있고 결과를 다시 spits,하지만 난 내 인생에 대한 설정 매개 변수를 얻을 수 없다 (나는 항상 빈 배열을 얻을). 여기 Doctrine DBAL 매개 변수가 작동하지 않습니다.
작동 무엇 : 나는 대체하고자하는 분명한 이유를 들어$qb->select('*')
->from('photos')
->where("country = '".$country."'")
->andWhere('status = 1')
->orderBy($sort[0], $sort[1])
->setFirstResult($start)
->setMaxResults($limit)
그와 :
$qb->select('*')
->from('photos')
->where("country = ?") /// <--
->andWhere('status = 1')
->orderBy($sort[0], $sort[1])
->setFirstResult($start)
->setMaxResults($limit)
->setParameter(0, $country) /// <--
또는 :
$qb->select('*')
->from('photos')
->where("country = :country") /// <--
->andWhere('status = 1')
->orderBy($sort[0], $sort[1])
->setFirstResult($start)
->setMaxResults($limit)
->setParameter(':country', $country) /// <--
심지어 :
$qb = $this->db->createQueryBuilder();
$expr = $qb->expr();
$qb->select('*')
->from('photos')
->where($qb->expr()->andX(
$qb->expr()->eq('country', '?1'), /// <--
$qb->expr()->eq('status', 1)
))
->orderBy($sort[0], $sort[1])
->setFirstResult($start)
->setMaxResults($limit)
->setParameter(1, $country) /// <--
다음은 docs에서 찾은 매개 변수 설정의 예입니다. 그러나 그 중 아무 것도 작동하지 않는 것으로 보이며 디버깅 방법을 모르겠습니다. $ qb-> getSQL() 및 $ qb-> getParams()를 확인하는 것이 유용한 것은 아닙니다.
메신저 ("doctrine/dbal": "~2.2")
사용하는 것이 중요합니다.
"작동하지 않는 것 같습니다"에 대해 자세히 설명해 주실 수 있습니까? 결과가 없습니다. – mickadoo
정확히. 오류 없음. 빈 결과 배열. 첫 번째 방법은 예상대로 행을 반환합니다. 변경된 내용이 표시됩니다. – konrad
'-> setParameter ('country', $ country)'(콜론 제외) – mickadoo