PDO::nextRowset() does not appear to be currently supported by the Firebird PDO driver. Unfortunate.
PDOStatement::nextRowset
(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)
PDOStatement::nextRowset — Avanza hasta el siguiente conjunto de filas de un gestor de sentencia multiconjunto de filas
Descripción
Algunas bases de datos admiten procedimientos almacenados que devuelve más de un conjunto de filas (también conocido como conjunto de resultados). Con PDOStatement::nextRowset() se puede accedar al segundo y subsiguiente conjunto de filas asociado con un objeto PDOStatement. Cada conjunto de filas puede tener un conjunto de columnas diferente del conjunto de filas precedente.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Obtener múltiples conjuntos de filas devueltas por un procedimiento almacenado
El siguiente ejemplo muestra cómo llamar a un procedimiento almacenado, MULTIPLE_ROWSETS, que devuelve tres conjuntos de filas. Se usa un bucle do / while para iterar sobre el método PDOStatement::nextRowset(), el cual devuelve false y finaliza el bucle cuando no se pueden devolver más conjuntos de filas.
<?php
$sql = 'CALL multiple_rowsets()';
$sentencia = $conexión->query($sql);
$i = 1;
do {
$conjunto_filas = $sentencia->fetchAll(PDO::FETCH_NUM);
if ($conjunto_filas) {
printResultSet($conjunto_filas, $i);
}
$i++;
} while ($sentencia->nextRowset());
function printResultSet(&$conjunto_filas, $i) {
print "Conjunto de resultados $i:\n";
foreach ($conjunto_filas as $fila) {
foreach ($fila as $columna) {
print $columna . "\t";
}
print "\n";
}
print "\n";
}
?>
El resultado del ejemplo sería:
Conjunto de resultados 1: apple red banana yellow Conjunto de resultados 2: orange orange 150 banana yellow 175 Conjunto de resultados 3: lime green apple red banana yellow
Ver también
- PDOStatement::columnCount() - Devuelve el número de columnas de un conjunto de resultados
- PDOStatement::execute() - Ejecuta una sentencia preparada
- PDOStatement::getColumnMeta() - Devuelve metadatos de una columna de un conjunto de resultados
- PDO::query() - Ejecuta una sentencia SQL, devolviendo un conjunto de resultados como un objeto PDOStatement
