Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhalte ich den Typ einer Abfrageanweisung in PDO?

Ich suchte nach der gleichen Antwort und stieß auf diesen Artikel . Es wurde zuletzt im August aktualisiert. Darin gibt es einen Abschnitt:"Bestimmung der Art einer Aussage" Grundsätzlich kann man von folgenden Annahmen ausgehen:(aus dem Artikel kopiert)

  • Wenn columnCount() Null ist, hat die Anweisung keine Ergebnismenge erzeugt. Stattdessen wurden Zeilen geändert, und Sie können rowCount() aufrufen, um die Anzahl der betroffenen Zeilen zu ermitteln.
  • Wenn columnCount() größer als Null ist, hat die Anweisung eine Ergebnismenge erzeugt und Sie können die Zeilen abrufen. Um festzustellen, wie viele Zeilen vorhanden sind, zählen Sie sie beim Abrufen.

Ich erspare Ihnen die Mühe und füge einfach das Codebeispiel hier ein

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