Symfony Doctrine语法错误或访问冲突:

时间:2016-06-17 16:06:32

标签: sql-server symfony doctrine

我正在学习symfony,我正在尝试应用"创建数据库表模式"教义章节。我运行以下命令:

php bin/console doctrine:schema:update --force --dump-sql

我收到错误:

  

[学说\ DBAL \异常\ SyntaxErrorException]
  执行' CREATE TABLE vente \ produit(id   INT AUTO_INCREMENT NOT NULL,nom VARCHAR(28)NOT NULL,prix DOUBLE   PRECIS ION DEFAULT NULL,Descro LONGTEXT NOT NULL,PRIMARY   KEY(id))DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE =   InnoDB':SQLSTATE [42000]:语法错误或访问   违规:1064您的SQL语法有错误;检查手册   对应于右侧的MariaDB服务器版本   在' \ produit附近使用的语法(id INT AUTO_INCREMENT NOT NULL,nom   VARCHAR(28)NOT NULL,prix DOUBLE'在第1行

                                                                                                                                                  [Doctrine\DBAL\Driver\PDOException]                                   
     

SQLSTATE [42000]:语法错误或访问冲突:1064您有   SQL语法错误;查看与您的手册相对应的手册   MariaDB服务器版本,用于在' \ produit附近使用正确的语法   (id INT AUTO_INCREMENT NOT NULL,nom VARCHAR(28)NOT NULL,prix DOUBLE   '在第1行

                                                                                                                                                  [PDOException]                                                        
     

SQLSTATE [42000]:语法错误或访问冲突:1064您有   SQL语法错误;查看与您的手册相对应的手册   MariaDB服务器版本,用于在' \ produit附近使用正确的语法   (id INT AUTO_INCREMENT NOT NULL,nom VARCHAR(28)NOT NULL,prix DOUBLE   '在第1行

                                                                         .

如果我直接从mysql运行转储>提示,它正确创建表 我的实体就是这个:

<?php

namespace AppBundle\Entity\Vente;

use Doctrine\ORM\Mapping as ORM;

/**
 * Produit
 *
 * @ORM\Table(name="vente\produit")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\Vente\ProduitRepository")
 */
class Produit
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=28)
     */
    private $nom;

    /**
     * @var float
     *
     * @ORM\Column(name="prix", type="float", nullable=true)
     */
    private $prix;

    /**
     * @var string
     *
     * @ORM\Column(name="Descro", type="text")
     */
    private $descro;


    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nom
     *
     * @param string $nom
     *
     * @return Produit
     */
    public function setNom($nom)
    {
        $this->nom = $nom;

        return $this;
    }

    /**
     * Get nom
     *
     * @return string
     */
    public function getNom()
    {
        return $this->nom;
    }

    /**
     * Set prix
     *
     * @param float $prix
     *
     * @return Produit
     */
    public function setPrix($prix)
    {
        $this->prix = $prix;

        return $this;
    }

    /**
     * Get prix
     *
     * @return float
     */
    public function getPrix()
    {
        return $this->prix;
    }

    /**
     * Set descro
     *
     * @param string $descro
     *
     * @return Produit
     */
    public function setDescro($descro)
    {
        $this->descro = $descro;

        return $this;
    }

    /**
     * Get descro
     *
     * @return string
     */
    public function getDescro()
    {
        return $this->descro;
    }
}

1 个答案:

答案 0 :(得分:0)

事实上,麻烦是由于我将实体放在“AppBundle / Entity”的子文件夹“Vente”中。它产生了一个奇怪的表名Vente / Produit。 直接把它放在Entity中解决了麻烦。