【问题标题】:Error inserting data into a table using doctrine and mssql使用学说和 mssql 将数据插入表中时出错
【发布时间】:2018-11-21 16:51:34
【问题描述】:

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

    /**
     * @Route("/admin/user/new", name="admin_add_new_user")
     */
    public function new_user(EntityManagerInterface $em)
    {
        $user = new User();
        $user->setUsername('felipito')
            ->setPassword('canelo123')
            ->setEmail('fpcanelo@ati.cu');

        $em->persist($user);
        $em->flush();

        return $this->render('admin/index.html.twig', [
            'controller_name' => 'AdminController',
            'brand' => 'brand',
            'msg' => sprintf(
                'New user dude: id #%d user %s', $user->getId(), $user->getUsername()
            )
        ]);
    }

一旦我打开网址,它会抛出以下内容:

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.

可能问题与this problem I had yesterday有关

【问题讨论】:

    标签: php sql sql-server symfony doctrine-orm


    【解决方案1】:

    看起来 user 是 MySQL 中的保留字。 像这样更新您的用户实体 @ORM\Table 注释。

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

    注意表名使用单引号。

    【讨论】:

    • 嘿@rodmar-zavala,除了我使用的是sql server,你是对的,似乎'user'也是sql server中的保留字,所以我再次重构了整个东西并且它起作用了,谢谢
    • @Nestor 太棒了!您介意将答案标记为有用吗?我是新手,正在努力赢得声誉!谢谢!
    【解决方案2】:

    就像@rodmar-zavala 回答的那样,问题是我在 sql server 中使用了保留字。它也适用于我在making the migration on doctrine 时遇到的这个错误。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 2016-06-10
      相关资源
      最近更新 更多