【问题标题】:Array is masked as string in "IN" statement数组在“IN”语句中被屏蔽为字符串
【发布时间】:2012-03-09 13:56:52
【问题描述】:

使用此 DQL 时

$getImages = $em->createQuery('SELECT stuff
    FROM MyBundle:MyModelClass
    WHERE model.id NOT IN (:hide)')
->setParameter('hide', join(',', $hide), 'array');

生成的 SQL 将被映射到:

SELECT stuff FROM mymodelclass WHERE model.id NOT IN ('1,2,3');

这显然是错误的

SELECT stuff FROM mymodelclass WHERE model.id NOT IN (1,2,3);

所以查询是正确的。如何告诉教义映射数组而不将其转义为字符串?

【问题讨论】:

    标签: php mysql arrays doctrine dbal


    【解决方案1】:

    manual

    $stmt = $conn->executeQuery('SELECT * FROM articles WHERE id IN (?)', array(array(1, 2, 3, 4, 5, 6)), array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY) );

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-11
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多