gpt4 book ai didi

php - symfony2主义插入实体日期时间mysql格式错误

转载 作者:行者123 更新时间:2023-11-29 22:19:12 24 4
gpt4 key购买 nike

我正在尝试将一个项目从 mssql 移植到 mysql,使用 MySQL Workbench 移​​植数据库 - 一切都很顺利。当尝试插入数据时,我得到 SQLSTATE[22007]: Invalid datetime format: 1292 In Correct datetime value: '06/18/2015 14:49:22' for columns 'x'。在教义配置 Entityname.orm.yml 中我有:

x:
type: datetime
gedmo:
timestampable:
on: create

在实体类中:

/**
* @var datetime $x
*/
private $x;


/**
* Set x
*
* @param datetime $x
*/
public function setX($x)
{
$this->x= $x;
}

导致错误的代码:

$em = $this->container->get('doctrine')->getEntityManager();
$new_entity = new EntityName();
$new_entity->setX(new \DateTime());
$em->persist($new_entity );
$em->flush();

在 _profiler 中我发现:INSERT INTO entity_name (x) VALUES (?) ({"1":{"date":"2015-06-18 14:49:22","timezone_type":3,"timezone":"欧洲/布加勒斯特"} })

此后出现错误。

这在之前使用 pdo_sqlsrv database_driver 和 mssql 数据库时有效。

编辑:什么有效 - 运行 set sql_mode=NO_ENGINE_SUBSTITUTION;设置全局 sql_mode=NO_ENGINE_SUBSTITUTION;在 mysql 数据库中 - 似乎错误的日期时间格式不是由 symfony 完成的。该错误是由 strict_trans_tables 引起的 - SQL 模式改变了 MySQL 执行 SQL 语句的方式

最佳答案

在 MySQL 端有更好的方法吗?只需像这样设置您的字段即可:

date_x TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

之后:

$new_entity->setX(null);

您将在 MySQL 端获得当前日期:)

关于php - symfony2主义插入实体日期时间mysql格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com