Doctrine2 中的查询错误
Error with a query in Doctrine2
我正在尝试使用 Doctrine2 QueryBuilder 构建查询,但这是我得到的:
[Syntax Error] line 0, col 198: Error: Expected end of string, got 'lo' (500 Internal Server Error)
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 != '') {
其次,如果函数参数是 empty/null,您总是添加一个 WHERE
而没有后面的表达式,这会导致 SQL 错误。下一行也没有意义:
if ($bool)
$dql.=' AND';
$bool
将始终为 false,因此不需要 AND
。
可能是一些乱码因为试错。
我正在尝试使用 Doctrine2 QueryBuilder 构建查询,但这是我得到的:
[Syntax Error] line 0, col 198: Error: Expected end of string, got 'lo' (500 Internal Server Error)
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 != '') {
其次,如果函数参数是 empty/null,您总是添加一个 WHERE
而没有后面的表达式,这会导致 SQL 错误。下一行也没有意义:
if ($bool)
$dql.=' AND';
$bool
将始终为 false,因此不需要 AND
。
可能是一些乱码因为试错。