使用 insert() 方法通过 PHP Doctrine\DBAL 2 插入 DateTime 值
Posted
技术标签:
【中文标题】使用 insert() 方法通过 PHP Doctrine\\DBAL 2 插入 DateTime 值【英文标题】:using insert() method to insert DateTime value with PHP Doctrine\DBAL 2使用 insert() 方法通过 PHP Doctrine\DBAL 2 插入 DateTime 值 【发布时间】:2012-04-18 07:38:21 【问题描述】:如何使用 Doctrine\DBAL 将 php 的 DateTime 对象作为数据库字段的值传递?
$DB 是一个 Doctrine\DBAL\Connection 实例。
$DB->insert('table_name', [
'field' => new \DateTime(),
]);
// Catchable fatal error: Object of class DateTime could not be converted to string
上面的代码不起作用,文档很少。
我确定您可以使用其他 DBAL 方法直接提供 DateTime 对象,是否可以使用 insert() 做到这一点?
【问题讨论】:
找到解决方案。只需将第三个参数 array('datetime') 传递给 insert() 方法。对 DateTime 使用 'datetime',对字符串使用 PDO::PARAM_STR,对整数使用 PDO::PARAM_INT。 【参考方案1】:$DB->insert('table_name', [
'foo' => 'foo',
'bar' => 17,
'field' => new \DateTime(),
], [
PDO::PARAM_STR,
PDO::PARAM_INT,
'datetime',
]);
成功了! ))
【讨论】:
第一个数组中元素的顺序呢?我假设当键值对数组被正确声明为函数参数时,键的顺序将与它们被声明的顺序匹配,但是如果键值对数组是由其他函数动态创建的呢?以上是关于使用 insert() 方法通过 PHP Doctrine\DBAL 2 插入 DateTime 值的主要内容,如果未能解决你的问题,请参考以下文章
如何在php类中执行某方法的时候自动执行另一个方法?比如我执行数据插入的时候自动运行数据过滤的方法?