我试图编写一个函数,在调用时会将最新条目的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'在他们的例子中,我无法理解为什么它会导致这样的问题。
任何帮助将不胜感激,如果这还不够,可以轻松提供更多信息。
答案 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();