为什么symfony创建错误的mysql请求?

问题描述 投票:0回答:1

我的实体,看起来像。



/**
 * @ORM\Entity(repositoryClass=ExperienceRepository::class)
 */
class Experience
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @Assert\Range(
     *     min=0,
     *     max=100
     * )
     * @ORM\Column(type="integer")
     * @Groups({"experience:read", "experience:write"})
     */
    private $years;

    /**
     * @ORM\OneToMany(targetEntity=Limit::class, mappedBy="experience")
     * @Groups({"experience:read"})
     */
    private $limits;


/**
 * @ORM\Entity(repositoryClass=LimitRepository::class)
 */
class Limit
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @Groups({"limit:read"})
     */
    private $id;

    /**
     * @ORM\Column(type="datetime")
     * @Groups({"limit:read", "limit:write"})
     */
    private $limitDate;

    /**
     * @ORM\Column(type="float")
     * @Groups({"limit:read", "limit:write"})
     */
    private $limitValue;

    /**
     * @ORM\ManyToOne(targetEntity=Experience::class, inversedBy="limits")
     * @ORM\JoinColumn(nullable=false)
     */
    private $experience;

    /**
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     * @Groups({"limit:read"})
     */
    private $createdAt = null;

    /**
     * @ORM\Column(name="updated_at", type="datetime", nullable=true)
     * @Groups({"limit:read"})
     */
    private $updatedAt = null;

当我试图创建对象,并将其保存在数据库中时,我做了下一步(在控制器中)。

        $em = $this->getDoctrine()->getManager();
        $exp = new Experience();
        $exp->setYears(5);
        $em->persist($exp);
        $em->flush();

        $l = new Limit();
        $l->setLimitValue((1 + 2 + 1) * 1000);
        $l->setLimitDate(new \DateTime());
        $l->setExperience($exp);

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

然后,我得到了一个错误:

在执行''时发生了一个异常INSERT INTO limit (limit_date, limit_value, created_at, updated_at, experience_id) VALUES (?, ?, ?, ?, ?)'与参数 ["2020-06-03 11:01:56", 4000, null, null, 51]:

SQLSTATE[42000]: 语法错误或访问违规。1064 你的SQL语法有错误,请查看与你的MySQL服务器版本对应的手册,以了解在''附近使用的正确语法。limit (limit_date, limit_value, created_at, updated_at, experience_id) VALUES (''在第1行

我做错了什么?

php mysql database symfony pdo
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.