# PDO::exec

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

PDO::exec — Ejecuta una sentencia SQL y devuelve el número de filas afectadas

### Descripción

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

PDO::exec() ejecuta una sentencia SQL en una única llamada a la función, devolviendo el número de filas afectadas por la sentencia.

PDO::exec() no devuelve resultados de una sentencia SELECT. Para una sentencia SELECT que sólo se necesita ejecutar una vez en el programa, se debe considerar el uso de PDO::query(). Para una sentencia que se deba ejecutar en múltiples ocasiones, preparar un objeto PDOStatement con PDO::prepare() y ejecutarlo con PDOStatement::execute().

### Parámetros

`statement`

  La sentencia SQL para preparar y ejecutar.

  Los datos dentro de la consulta deben ser debidamente escapados.

### Valores devueltos

PDO::exec() devuelve el número de filas modificadas o borradas por la sentencia SQL ejecutada. Si no hay filas afectadas, PDO::exec() devuelve `0`.

Advertencia

Esta función puede devolver el valor booleano `false`, pero también puede devolver un valor no booleano que se evalúa como `false`. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.

El siguiente ejemplo confía incorrectamente en el valor de retorno de PDO::exec(), donde en una sentencia que afecta a 0 filas resulta en una llamada a die():

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

### Ejemplos

Ejemplo #1 Ejecutando una sentencia DELETE

Cuenta el número de filas afectadas por una sentencia DELETE sin cláusula WHERE.

`<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Borra todas las filas de la tabla FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");
/* Devuelve el número de filas borradas */
print("Deleted $count rows.\n");
?>`

El resultado del ejemplo sería:

    Deleted 1 rows.

### Ver también

- PDO::prepare() - Prepara una sentencia para su ejecución y devuelve un objeto sentencia
- PDO::query() - Ejecuta una sentencia SQL, devolviendo un conjunto de resultados como un objeto PDOStatement
- PDOStatement::execute() - Ejecuta una sentencia preparada