Php 保存模型时出现SQL错误
我第一次使用条令,它看起来很酷。但我无法将模型保存到数据库中 目前我正在使用PHP7.4和Doctrine 2.7.0 我有一个简单的模型:Php 保存模型时出现SQL错误,php,mysql,doctrine-orm,Php,Mysql,Doctrine Orm,我第一次使用条令,它看起来很酷。但我无法将模型保存到数据库中 目前我正在使用PHP7.4和Doctrine 2.7.0 我有一个简单的模型: use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="place") */ class Place { /** * @ORM\Id * @ORM\Column(type="integer", unique=true) * @O
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="place")
*/
class Place {
/**
* @ORM\Id
* @ORM\Column(type="integer", unique=true)
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected int $id;
/** @ORM\Column(type="string", unique=true) */
private string $name;
/** @ORM\Column(type="integer") */
private int $ignore = 0;
/**
* @return int
*/
public function getId(): int {
return $this->id;
}
/**
* @return string
*/
public function getName(): string {
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name): void {
$this->name = $name;
}
/**
* @return int
*/
public function getIgnore(): int {
return $this->ignore;
}
/**
* @param int $ignore
*/
public function setIgnore(int $ignore): void {
$this->ignore = $ignore;
}
}
桌子的结构如下所示:
通过教程()我了解到我可以创建这样的新对象:
$p = new Place();
$p->setName("hello");
$entityManager = Doctrine::setup(); // sets up the entity manager
$entityManager->getConnection()
->getConfiguration()
->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger());
$entityManager->persist($p);
$entityManager->flush();
并将其保存到数据库中,如下所示:
$p = new Place();
$p->setName("hello");
$entityManager = Doctrine::setup(); // sets up the entity manager
$entityManager->getConnection()
->getConfiguration()
->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger());
$entityManager->persist($p);
$entityManager->flush();
但我得到以下SQL错误(包括调试信息):
我想,也许我做错了什么。我也在其他型号上尝试过,但我总是会遇到这种错误。这可以通过使用反勾号来解决,请看这里:
这可以通过使用反勾号来解决,请查看以下内容:
这与objectI添加的屏幕快照相同。在DB中运行此查询时会发生什么<代码>插入到位(名称,忽略)值(“你好”,0)好主意,我发现了问题。我不能在没有“`”的情况下使用“忽略”。有没有办法引用条令中的列名?没有,因为
ignore
是MYSQL关键字,即保留字。在这里了解更多:这与objectI添加的屏幕快照相同在DB中运行此查询时会发生什么<代码>插入到位(名称,忽略)值(“你好”,0)好主意,我发现了问题。我不能在没有“`”的情况下使用“忽略”。有没有办法引用条令中的列名?没有,因为ignore
是MYSQL关键字,即保留字。在这里了解更多:因为我注意到,我不能使用ignore作为专栏,所以我已经找到了解决方案。但我也找到了一个引用策略的解决方案。但我不能让它工作。你知道如何实现QuoteStrategy吗,所以我不需要使用反勾号?因为我注意到,我不能使用ignore作为列,所以我已经找到了解决方案。但我也找到了一个引用策略的解决方案。但我不能让它工作。你知道如何实现QuoteStrategy吗,这样我就不需要使用反勾号了?