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

pea*_*ove 0 mysql variables jquery function symfony

这是我的功能:

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

我只是尝试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');
     }
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

[语法错误]第0行,第125栏:错误:预期文字,得到'$'

Jim*_*ght 5

简而言之,当在字符串中放置特殊字符(如新行或变量)时,需要使用双引号.

要将var放在字符串中,需要将其连接到字符串中,如下所示:

'SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = '.$id
Run Code Online (Sandbox Code Playgroud)

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

"SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = $id"
Run Code Online (Sandbox Code Playgroud)

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

"SELECT a, b
FROM App\Entity\Products a
JOIN a.productgroup b
WHERE a.id = {$id}"
Run Code Online (Sandbox Code Playgroud)