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
$statement
): int|falsePDO::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.
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
?>
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 */
echo "$count Zeilen wurden gelöscht.\n";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
10 Zeilen wurden gelöscht.
Siehe auch
- PDO::prepare() - Prepares a statement for execution and returns a statement object
- PDO::query() - Prepares and executes an SQL statement without placeholders
- PDOStatement::execute() - Führt ein Prepared Statement aus