如何在mysql查询中使用变量?

j1dl9f46  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(400)

这个问题在这里已经有答案了

symfony查询出错:需要文字,得到''''(3个答案)
去年关门了。
这是我的职责:

public function findByIdJoinedToCategory($id)
     {
         $query = $this->getEntityManager()
             ->createQuery(
                 'SELECT a, b
                 FROM App\Entity\Products a
                 JOIN a.productgroup b
                 WHERE a.id = 2');
     }

我只是想替换 2 使用变量 $id . 但我没有成功:

public function findByIdJoinedToCategory($id)
     {
         $query = $this->getEntityManager()
             ->createQuery(
                 'SELECT a, b
                 FROM App\Entity\Products a
                 JOIN a.productgroup b
                 WHERE a.id = $id');
     }

我收到错误消息:
[语法错误]第0行,第125列:错误:应为literal,得到“$”

irlmq6kh

irlmq6kh1#

我想它必须把绳子连在一起。试试这个:

public function findByIdJoinedToCategory($id)
     {
         $query = $this->getEntityManager()
             ->createQuery(
                 "SELECT a, b
                 FROM App\Entity\Products a
                 JOIN a.productgroup b
                 WHERE a.id ='$id'");
     }
ovfsdjhp

ovfsdjhp2#

简而言之,在字符串中放置特殊字符(如新行或变量)时,需要使用双引号。
要在字符串中放置var,需要将其连接到字符串中,如下所示:

'SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = '.$id

您可以将var放在字符串内部,如下所示:

"SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = $id"

但是,您可能会发现以下内容更具可读性:

"SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = {$id}"

相关问题