我正在处理一个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中的一个保留关键字。
更改列名以解决此问题。