Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere il tipo di un'istruzione di query in PDO?

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