Estaba buscando la misma respuesta y encontré este artículo . Se actualizó por última vez en agosto. En él, hay una sección:"Determinación del tipo de declaración". Básicamente, puede hacer las siguientes suposiciones:(copiado del artículo)
- Si columnCount() es cero, la declaración no produjo un conjunto de resultados. En su lugar, modificó filas y puede invocar rowCount() para determinar el número de filas afectadas.
- Si columnCount() es mayor que cero, la declaración produjo un conjunto de resultados y puede recuperar las filas. Para determinar cuántas filas hay, cuéntalas a medida que las recuperas.
Te ahorraré la molestia y simplemente pegaré el código de muestra aquí
$sth = $dbh->prepare ($stmt);
$sth->execute ();
if ($sth->columnCount () == 0)
{
# there is no result set, so the statement modifies rows
printf ("Number of rows affected: %d\n", $sth->rowCount ());
}
else
{
# there is a result set
printf ("Number of columns in result set: %d\n", $sth->columnCount ());
$count = 0;
while ($row = $sth->fetch (PDO::FETCH_NUM))
{
# display column values separated by commas
print (join (", ", $row) . "\n");
$count++;
}
}