Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir le type d'une instruction de requête dans PDO ?

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