Symfony& Doc从DB中提取ID

时间:2015-03-23 23:42:16

标签: php sql symfony doctrine

我试图编写一个函数,在调用时会将最新条目的ID返回到我的数据库中。我对PHP很新,所以请原谅我糟糕的代码。

public function devicesFunctionAction()
{   
    $em = $this->getDoctrine()->getManager();
    $query = $em->createQuery(
      'SELECT id 
      FROM AppBundle:ZeusUsers
      ORDER BY id DESC');
    $id = $query->getResult();
    $query->setMaxResults(1);

    return new Response(json_encode(array('key' => $id)));
}

上面的代码会产生500错误,但它似乎是' BY'造成这种情况:

  

[语法错误]第0行,第48列:错误:字符串的预期结束,得到   ' BY' (500内部服务器错误)

在阅读了Doctrine文档之后,他们使用了“ORDER BY'在他们的例子中,我无法理解为什么它会导致这样的问题。

任何帮助将不胜感激,如果这还不够,可以轻松提供更多信息。

1 个答案:

答案 0 :(得分:1)

这不是纯SQL,除非你使用$ connection-> prepare()和execute(),否则你不能像使用doctrine这样做,但是要回答你的问题,请使用它:

    $em = $this->getDoctrine()->getManager();
    $query = $em->createQuery(
      'SELECT z.id
      FROM AppBundle:ZeusUsers z
      ORDER BY z.id DESC');
    $query->setMaxResults(1); // and setMaxResults(1) before getResult() obvisouly :p
    $id = $query->getSingleScalarResult();

编辑。