sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo obtener el tipo de una declaración de consulta en PDO?

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++;
    }
}