2012-04-04 4 views
14

¿Cómo puedo pasar DateTime objeto de PHP como un valor para el campo de base de datos utilizando Doctrina \ DBAL?utilizando el método() de inserción para insertar el valor DateTime con PHP Doctrina DBAL 2

$ DB es un Doctrina \ DBAL \ Conexión ejemplo.

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

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

El código anterior no está funcionando y la documentación es escasa.

supe con seguridad que puede proporcionar DateTime objetos directamente utilizando otros métodos DBAL, ¿es posible hacer esto con inserción()?

+1

Solución encontrada. Solo pase el tercer argumento array ('datetime') al método insert(). Use 'datetime' para DateTime, PDO :: PARAM_STR para cadenas y PDO :: PARAM_INT para enteros. –

Respuesta

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

Hicieron el truco!))

+0

¿Qué pasa con el orden de los elementos en la primera matriz? Supongo que cuando una matriz de pares clave-valor se declara correcta como argumento de función, el orden de las claves coincidirá con el orden de su declaración; sin embargo, ¿qué ocurre si la matriz de pares clave-valor se crea dinámicamente mediante alguna otra función? –

Cuestiones relacionadas