我尝试使用Doctrine2 QueryBuilder构建查询,但这是我得到的:
[语法错误]第0行,第198列:错误:字符串的预期结束,得到了' lo' (500内部服务器错误)
public function FiltrarDatos($localidad_id){
$em = $this->getEntityManager();
$dql = 'SELECT l FROM TarifaBundle:Llamada l';
if ($localidad_id != "") {
$dql.=' INNER JOIN l.localidad lo';
}
$dql.= ' WHERE';
$bool = false;
if ($localidad_id != '') {
if ($bool)
$dql.=' AND';
$dql.=' lo.id=:localidad_id';
$bool = true;
$parameters['localidad_id'] = $localidad_id;
}
$query = $em->createQuery($dql);
$query->setParameters($parameters);
return $query->getResult();
}
答案 0 :(得分:0)
您的SQL存在一些问题。
首先:函数参数 var moo = "@jonson where are you?".match(/@([^ ]*)/)[1]; // jonson
与此行不同:
$id_localidad
其次,如果函数参数为空/ null而导致SQL错误,则始终添加if ($localidad_id != '') {
而不使用以下表达式。下一行也没有意义:
WHERE
if ($bool)
$dql.=' AND';
将始终为false,因此不需要$bool
。
由于尝试和错误,可能是一些混乱的代码。