PDO::exec() executes an SQL statement in a single function call, returning the number of rows affected by the 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().
The SQL statement to prepare and execute.
Data inside the query should be properly escaped.
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.
This function may return Boolean FALSE
, but may also return a non-Boolean value which evaluates to FALSE
. 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():
1 2 3 | <?php $db -> exec () or die (print_r( $db ->errorInfo(), true)); ?> |
Count the number of rows deleted by a DELETE statement with no WHERE clause.
1 2 3 4 5 6 7 8 9 | <?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:
Deleted 1 rows.
Please login to continue.