【发布时间】:2017-11-24 08:55:38
【问题描述】:
我正在使用 NativeSQL,我需要设置未定义数量的参数。我的代码:
$entityManager = $this->getEntityManager();
$rsm = new Query\ResultSetMappingBuilder($entityManager);
$mySql = "
SELECT *
FROM table1 t1
INNER JOIN table2 t2 ON t2.t1_id = t1.id
...
WHERE t1.name = :t1_name AND t2.age = :t2_age AND ...
";
// array of multiple query parameters (name, value)
$queryParameters = array(
't1_name' => 'Andy',
't2_age' => 12,
...
);
$query = $entityManager->createNativeQuery($mySql, $rsm);
$query->setParameters($queryParameters);
$salidas = $query->getResult();
我需要设置每个查询参数的类型,但是 setParameters() 函数不允许传递这些类型。
我看到 AbstractQuery(Doctrine 类)的 setParameter() 函数允许传递这种类型,但我想使用 setParamaters() 函数,因为我必须传递未定义数量的参数...
我该如何解决这个问题?谢谢。
【问题讨论】:
-
“我需要设置每个查询参数的类型”是什么意思?
-
WHERE 参数的类型。在我的示例中: :t1_name (字符串类型)和 :t2_age (整数类型)。例如,类似:PDO bindParam()
-
为什么需要这个?对我来说,您的问题似乎是XY problem:询问您尝试的解决方案,而不是您的实际问题。
标签: php symfony doctrine-orm doctrine