5
Sto usando doctrine DBAL e ho qualche problema con la query SQL come risultato di una queryBuilder.Doctrine DBAL setParameter() con valore di matrice
$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();
E ottenere SQL
SELECT id, name, type FROM table WHERE (id=149) AND (type IN (first,second)) LIMIT 1
E questo è il problema, ho bisogno che (digitare (primo, secondo)) è stato codificato come stringhe come (digitare ('prima', 'secondo '))
Come farlo con il generatore di query nel modo giusto?
Grazie, la seconda variante con \ Doctrine \ DBAL \ Connection :: PARAM_STR_ARRAY funziona alla grande per me! –
Il primo caso non funziona, perché dbal non esegue il wrapping di stringhe nella matrice senza tipo di parametro. –
@SergeyNikolaev hai ragione ma non sono stato in grado di testarlo, quindi ho scritto una risposta cercando di cambiare la definizione di array e specificando il tipo di parametro – DonCallisto