Php 使用条令和mssql将数据插入表时出错

Php 使用条令和mssql将数据插入表时出错,php,sql,sql-server,symfony,doctrine-orm,Php,Sql,Sql Server,Symfony,Doctrine Orm,我正试图以这种方式(Symfony4)将数据插入到创建的数据库中,该数据库具有相应的表: 打开url后,它会抛出以下内容: An exception occurred while executing 'INSERT INTO user (username, roles, password, email) VALUES (?, ?, ?, ?)' with params ["felipito", "[]", "canelo123", "fpcanelo@ati.cu"]: SQLSTATE [4

我正试图以这种方式(Symfony4)将数据插入到创建的数据库中,该数据库具有相应的表:

打开url后,它会抛出以下内容:

An exception occurred while executing 'INSERT INTO user (username, roles, password, email) VALUES (?, ?, ?, ?)' with params ["felipito", "[]", "canelo123", "fpcanelo@ati.cu"]:

SQLSTATE [42000, 156]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near the keyword 'user'.
SQLSTATE [42000, 8180]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Statement(s) could not be prepared.

可能问题与

有关,看起来用户是MySQL中的保留词。 像这样更新用户实体@ORM\Table注释

 use Doctrine\ORM\Mapping as ORM;

 /**
 * @ORM\Entity
 * @ORM\Table(name="`user`")
 */
class User extends BaseUser
{
  // [....]
}

请注意,表的名称使用单引号。

与@rodmar zavala回答的一样,问题是我在sql server中使用了保留字。它也适用于我在工作时遇到的这个错误


所以我重构了类名,它工作正常。

Hey@rodmar zavala,除此之外,我使用的是sql server,你是对的,似乎“user”在sql server中也是一个保留字,所以我再次重构了整个内容,它工作了,thanks@Nestor伟大的你介意把答案标为有用吗?我是新来的,正在努力赢得声誉!谢谢
 use Doctrine\ORM\Mapping as ORM;

 /**
 * @ORM\Entity
 * @ORM\Table(name="`user`")
 */
class User extends BaseUser
{
  // [....]
}