Stavo cercando la stessa risposta e mi sono imbattuto in questo articolo . È stato aggiornato l'ultima volta ad agosto. In esso, c'è una sezione:"Determinazione del tipo di una dichiarazione" In pratica puoi fare le seguenti ipotesi:(copiato dall'articolo)
- Se columnCount() è zero, l'istruzione non ha prodotto un set di risultati. Invece, ha modificato le righe e puoi invocare rowCount() per determinare il numero di righe interessate.
- Se columnCount() è maggiore di zero, l'istruzione ha prodotto un set di risultati ed è possibile recuperare le righe. Per determinare quante righe ci sono, contale mentre le prendi.
Ti risparmierò la fatica e incollerò qui l'esempio di codice
$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++;
}
}