Doctrine2中的查询出错

时间:2016-05-09 20:47:42

标签: symfony doctrine-orm dql

我尝试使用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();

}

1 个答案:

答案 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

由于尝试和错误,可能是一些混乱的代码。

相关问题