2012-04-04 77 views
14

如何通過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

回答

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