使用insert()方法将DateTime值插入到PHP Doctrine \ DBAL中2

问题描述:

如何通过PHP的DateTime对象作为数据库字段的值使用Doctrine \ DBAL使用insert()方法将DateTime值插入到PHP Doctrine DBAL中2

$ DB主义\ DBAL \连接实例。

$DB->insert('table_name', [ 
    'field' => new \DateTime(), 
]); 

// Catchable fatal error: Object of class DateTime could not be converted to string 

上面的代码不工作和文档是稀少。

我肯定知道,你可以提供日期时间对象直接使用另一方法DBAL,是有可能与插入()做到这一点?

+1

找到解决方案。只需将第三个参数数组('datetime')传递给insert()方法即可。对于DateTime使用'datetime',对于字符串使用PDO :: PARAM_STR,对整数使用PDO :: PARAM_INT。 – 2012-04-04 15:12:23

$DB->insert('table_name', [ 
    'foo' => 'foo', 
    'bar' => 17, 
    'field' => new \DateTime(), 
], [ 
    PDO::PARAM_STR, 
    PDO::PARAM_INT, 
    'datetime', 
]); 

窍门! ))

+0

第一个数组中元素的顺序如何?我认为,当键 - 值对数组被声明为正确的函数参数时,键的顺序将与它们声明的顺序相匹配,但是如果键值对数组是由其他函数动态创建的呢? – 2016-04-18 18:59:36