php8.5
Home/ Manual/ pdo / pdo/ PDO::exec

PDO::exec

PHP function Edit on GitHub ✎

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

Execute an SQL statement and return the number of affected rows

Description

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

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.

Parameters

statement

The SQL statement to prepare and execute.

Data inside the query should be properly escaped.

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.

Falseproblem

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
<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // incorrect
?>

Errors/Exceptions Errors

Examples

Issuing a DELETE statement

Count the number of rows deleted by a DELETE statement with no WHERE clause.

php
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit");

/* Return number of rows that were deleted */
print "Deleted $count rows.\n";
?>

The above example will output:

output
Deleted 1 rows.

See Also

  • PDO::prepare
  • PDO::query
  • PDOStatement::execute

Source: reference/pdo/pdo/exec.xml · from the official PHP manual (php/doc-en)