Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter o tipo de uma instrução de consulta no PDO?


Eu estava procurando a mesma resposta e me deparei com este artigo . Foi atualizado pela última vez em agosto. Nele, há uma seção:"Determinando o tipo de uma declaração" Você basicamente pode fazer as seguintes suposições:(copiado do artigo)
  • Se columnCount() for zero, a instrução não produziu um conjunto de resultados. Em vez disso, ele modificou as linhas e você pode invocar rowCount() para determinar o número de linhas afetadas.
  • Se columnCount() for maior que zero, a instrução produziu um conjunto de resultados e você poderá buscar as linhas. Para determinar quantas linhas existem, conte-as ao buscá-las.

Vou poupar-lhe o trabalho e apenas colar o exemplo de código aqui
$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++;
    }
}