# PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::exec — Führt ein SQL-Statement aus und liefert die Anzahl der betroffenen Zeilen

### Beschreibung

public PDO::exec(string `$statement`): int|false

PDO::exec() führt ein SQL-Statement aus und gibt die Anzahl der betroffenen Zeilen zurück.

PDO::exec() gibt nicht die Ergebnisse eines SELECT-Statements zurück. Um diese zu erhalten kann entweder PDO::query() genutzt werden, oder ein ein PDOStatement, welches über PDO::prepare() erstellt und über PDOStatement::execute() ausgeführt wird.

### Parameter-Liste

`statement`

  Das SQL-Statement, welches ausgeführt werden soll.

  Alle Usereingaben in diesem Query müssen maskiert werden.

### Rückgabewerte

PDO::exec() gibt die Anzahl von Zeilen zurück, welche durch diese Abfrage geändert oder gelöscht wurden. Wenn keine Zeilen geändert wurden, gibt PDO::exec() `0` zurück.

Warnung

Diese Funktion kann sowohl das boolsche `false` zurückliefern, als auch einen nicht-boolschen Wert, welcher zu `false` ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Das folgende Beispiel verlässt sich fälschlicherweise auf den Rückgabewert von PDO::exec(), weswegen ein Statement, welches 0 Zeilen ändert, einen Aufruf von die() nach sich zieht:

`<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // unrichtig
?>`

### Fehler/Exceptions

Gibt einen Fehler der Stufe `E_WARNING` aus, wenn das Attribut `PDO::ATTR_ERRMODE` auf `PDO::ERRMODE_WARNING` gesetzt ist.

Löst eine PDOException aus, wenn das Attribut `PDO::ATTR_ERRMODE` auf `PDO::ERRMODE_EXCEPTION` gesetzt ist.

### Beispiele

Beispiel #1 Ein DELETE-Statement ausführen

Führt ein DELETE-Statement ohne WHERE-Klausel aus, und gibt die Anzahl der gelöschten Zeilen aus.

`<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Lösche alle Zeilen aus der FRUIT Tabelle */
$count = $dbh->exec("DELETE FROM fruit");
/* Und gebe die Anzahl an gelöschten Zeilen zurück */
print "$count Zeilen wurden gelöscht.\n";
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    10 Zeilen wurden gelöscht.

### Siehe auch

- PDO::prepare() - Bereitet eine Anweisung zur Ausführung vor und liefert ein Anweisungsobjekt
- PDO::query() - Bereitet eine SQL-Anweisung ohne Platzhalter vor und führt sie aus
- PDOStatement::execute() - Führt ein Prepared Statement aus

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open