PDO::exec

(PHP 5 >= 5.1.0, PHP 7, 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