Symfony2抛出教义例外"check the manual that corresponds to your MySQL server version for the right syntax t



我正在处理一个symfony项目,我试图使用实体将数据添加到数据库中,但我遇到了Doctrine sql错误?!!!!所以任何帮助都会在高级中得到通知

我自己做了一个实体,它是:

/**
 * @ORMTable(name="u001_user_group")
 * @ORMEntity
 */
 class UserGroup 
 {       
    /**
     * @var integer
     *
     * @ORMColumn(name="group", type="integer", length=20, nullable=false)
     */
    private $group;
    public function setGroup($group)
    {
        $this->group = $group;
        return $this;
    }
    public function getGroup()
    {
        return $this->group;
    }
}       

当我尝试添加这样的东西时:

$UserGroup= new UserGroup();
            $UserGroup->setUser($registerAction->getId());
            $UserGroup->setGroup(4);
            $em->persist($UserGroup);
            $em->flush();

它给了我这个错误:

执行"INSERT INTO u001_user_group"时发生异常(用户,组)VALUES(?,?)'with params[20,4]:

SQLSTATE[42000]:语法错误或访问冲突:1064您有SQL语法错误;查看与您的MySQL服务器版本,在'group)VALUES附近使用正确的语法(20,4)'在第1行

@nifr说了什么。

只需补充一点,如果您绝对需要使用group,您可以使用backticks来进行转义,如下所示:

/**
 * @var integer
 *
 * @ORMColumn(name="`group`", type="integer", length=20, nullable=false)
 */
private $group;

但一般来说,避免使用保留的词语是一种很好的做法。

group是MySQL中的一个保留关键字。

更改列名以解决此问题。

相关内容

最新更新