Doctrine2中的查询出错



我正试图使用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();
}

您的SQL中存在一些问题。

第一:函数参数$id_localidad与此行不同:

if ($localidad_id != '') {

其次,如果函数参数为空/null,从而导致SQL错误,则总是添加不带以下表达式的WHERE。接下来的几行也没有意义:

if ($bool)
    $dql.=' AND';

$bool将始终为false,因此不需要AND

也许是由于尝试和错误导致了一些混乱的代码。

相关内容

  • 没有找到相关文章

最新更新