私はDoctrineのSQLクエリービルダー(http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/query-builder.html)Doctrine - SQL Query Builder - 更新して参加しますか?
を使用しており、結合で更新ケースを実行したいと考えています。ここでは参加はサポートされていないことを理解しています。だから私はこれを行う:私はこのクエリを実行すると
$query = $dbalQueryBuilder->update('s_articles_attributes', 'aa')
->set('aa.fp_pos_days', ':days')
->where('aa.articledetailsID IN (SELECT a.id FROM s_articles a WHERE a.supplierID IN (:supplierIds))')
->setParameter('days', $days_string)
->setParameter('supplierIds', $supplierIds)
->execute();
$ supplierIdsはstring(39) "3,4,26,28,31,36,37,38,48,49,55,56,64,82"
で、何も起こりません。私がこれをするとき:
$query = $dbalQueryBuilder->update('s_articles_attributes', 'aa')
->set('aa.fp_pos_days', ':days')
->where('aa.articledetailsID IN (SELECT a.id FROM s_articles a WHERE a.supplierID IN (3,4,26,28,31,36,37,38,48,49,55,56,64,82))')
->setParameter('days', $days_string)
->execute();
それはうまく動作します。なぜ誰が知っていますか?そして、それは私が間違っていますか?その変数を使用する必要があります。