Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Doctrine QueryBuilder中从数组中选择列_Php_Doctrine - Fatal编程技术网

Php 在Doctrine QueryBuilder中从数组中选择列

Php 在Doctrine QueryBuilder中从数组中选择列,php,doctrine,Php,Doctrine,我想选择数组中给定的列,然后根据这些列进行分组,但我不知道如何通过Doctrine中的select()传递数组值。我已经尝试了很多不同的版本,但我无法让它工作$factors只是一个以列名作为值的标准数组 $qb->select(":factors") ->from("Table") ->where("type = :type") ->groupBy(":factors") ->setParameter("factors", $factors

我想选择数组中给定的列,然后根据这些列进行分组,但我不知道如何通过Doctrine中的select()传递数组值。我已经尝试了很多不同的版本,但我无法让它工作$factors只是一个以列名作为值的标准数组

$qb->select(":factors")
   ->from("Table")
   ->where("type = :type")
   ->groupBy(":factors")
   ->setParameter("factors", $factors)
   ->setParameter("type", $type);

参数不能在
SELECT
语句中使用。了解一下,条令只是在使用这种功能

它们仅用于与存储的数据库值进行比较,而不是列名或表名。准备好的语句基本上可以帮助您转义查询中使用的那些值,这对于包含
的字符串来说可能有点困难

如果您想使用
$factors
数组进行变量选择,您可以这样做

$qb->select(implode(',', $factors))
但在这种情况下,您必须自己防止注射攻击。最好是在
$factors
中有一个允许值的白名单

groupby
语句也是如此