Търсих същия отговор и попаднах на тази статия . Последно е актуализиран през август. В него има раздел:„Определяне на вида на изявлението“ По принцип можете да направите следните предположения:(копирано от статията)
- Ако columnCount() е нула, операторът не е произвел набор от резултати. Вместо това той промени редовете и можете да извикате rowCount(), за да определите броя на засегнатите редове.
- Ако columnCount() е по-голямо от нула, операторът дава резултатен набор и можете да извлечете редовете. За да определите колко реда има, пребройте ги, докато ги извличате.
Ще ви спестя проблемите и просто ще поставите примерния код тук
$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++;
}
}