我正在学习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;
}
}
答案 0 :(得分:0)
事实上,麻烦是由于我将实体放在“AppBundle / Entity”的子文件夹“Vente”中。它产生了一个奇怪的表名Vente / Produit。 直接把它放在Entity中解决了麻烦。