Alternativa para `fetchAllAssociative()` y ejecutar en Doctrine.
Estoy llamando a un procedimiento almacenado utilizando SQL nativo a través de Doctrine. Los métodos fetchAllAssociative()
y execute
están obsoletos. ¿Cuáles son las alternativas?
$sql = 'CALL spWithParams(:param)';
$stmt = $this->getEntityManager()->getConnection()->prepare($sql);
$stmt->execute(["param" => "test"]);
print_r($stmt->fetchAllAssociative());
No tengo planeado mapear la respuesta a una entidad utilizando ResultSetMapping()
como se menciona en este enlace, ya que agregaré mi propio envoltorio personalizado.
davy.ai
Las alternativas al uso de
fetchAllAssociative()
yexecute()
, los cuales ahora están obsoletos en Doctrine, son las siguientes:fetchAll()
– Esto devolverá los resultados como un array numérico de arrays asociativos con claves tanto de nombre de columna como numéricas.fetchOne()
– Este método se puede utilizar para recuperar un solo valor del conjunto de resultados, en lugar de todo el conjunto.fetchColumn()
– Este método se utiliza cuando solo quieres recuperar una sola columna de una única fila, en lugar de obtener todo el conjunto de resultados.Aquí tienes un ejemplo de cómo quedará el código cuando se utiliza
fetchAll()
:Alternativamente, también puedes utilizar
fetch()
en un bucle para recuperar cada fila una a la vez: