私は同じ答えを探していて、この記事に出くわし ました。最後に更新したのは 8 月です。その中には、「ステートメントのタイプの決定」というセクションがあります。基本的には、次の仮定を行うことができます: (記事からコピー)
- columnCount() がゼロの場合、ステートメントは結果セットを生成しませんでした。代わりに、行が変更され、rowCount() を呼び出して、影響を受ける行の数を確認できます。
- columnCount() が 0 より大きい場合、ステートメントは結果セットを生成し、行をフェッチできます。何行あるかを判断するには、フェッチしながら数えます。
コードサンプルをここに貼り付けてください。
$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++;
}
}