Je cherchais la même réponse et je suis tombé sur cet article . Il a été mis à jour pour la dernière fois en août. Dans celui-ci, il y a une section :"Déterminer le type d'une déclaration" Vous pouvez essentiellement faire les hypothèses suivantes :(copié de l'article)
- Si columnCount() est égal à zéro, l'instruction n'a pas produit d'ensemble de résultats. Au lieu de cela, il a modifié les lignes et vous pouvez appeler rowCount() pour déterminer le nombre de lignes affectées.
- Si columnCount() est supérieur à zéro, l'instruction produit un ensemble de résultats et vous pouvez récupérer les lignes. Pour déterminer le nombre de lignes, comptez-les au fur et à mesure que vous les récupérez.
Je vais vous épargner la peine et coller simplement l'exemple de code ici
$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++;
}
}