5
Używam DBAL doktryny i mam pewien problem z zapytaniem SQL w wyniku queryBuilder.Doctrine DBAL setParameter() z wartością tablicy
$builder = $this->getConnection()->getQueryBuilder();
$builder->select(['id','name','type'])
->from('table')
->where('id='.(int)$value)
->setMaxResults(1);
$builder->andWhere($builder->expr()->in('type', ['first','second']));
echo(builder->getSQL());
$data = $builder->execute()->fetchRow();
I dostać SQL
SELECT id, name, type FROM table WHERE (id=149) AND (type IN (first,second)) LIMIT 1
I to jest problem, muszę, że (typu IN (pierwszy, drugi)) został zakodowany jako ciągi znaków, takich jak (typ IN ('pierwszy', "drugi '))
Jak to zrobić z narzędziem do tworzenia zapytań we właściwy sposób?
Dziękuję, drugi wariant z \ Doctrine \ DBAL \ Connection :: PARAM_STR_ARRAY działa świetnie dla mnie! –
Pierwszy przypadek nie działa, ponieważ dbal nie owija łańcuchów w tablicę bez typu parametru. –
@SergeyNikolaev masz rację, ale nie byłem w stanie przetestować go, więc napisałem odpowiedź, próbując zmienić definicję tablicy i określając typ parametru – DonCallisto