PDO::exec
(PHP 5 >= 5.1.0, PECL pdo:0.1-1.0.3)
PDO::exec —
Execute an SQL statement and return the number of affected rows
Description
int PDO::exec
( string $statement
)
PDO::exec() does not return results from a SELECT
statement. For a SELECT statement that you only need to issue once
during your program, consider issuing PDO::query().
For a statement that you need to issue multiple times, prepare
a PDOStatement object with PDO::prepare() and issue
the statement with PDOStatement::execute().
Parameters
-
statement
-
The SQL statement to prepare and execute.
Return Values
PDO::exec() returns the number of rows that were modified
or deleted by the SQL statement you issued. If no rows were affected,
PDO::exec() returns 0.
WarningThis function may
return Boolean FALSE, but may also return a non-Boolean value which
evaluates to FALSE, such as 0 or
"". Please read the section on Booleans for more
information. Use the ===
operator for testing the return value of this
function.
The following example incorrectly relies on the return value of
PDO::exec(), wherein a statement that affected 0 rows
results in a call to die():
<?php
$db->exec() or die($db->errorInfo());
?>
Examples
Example #1 Issuing a DELETE statement
Count the number of rows deleted by a DELETE statement with no WHERE
clause.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
/* Return number of rows that were deleted */
print("Deleted $count rows.\n");
?>
The above example will output: