(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
$statement
) : intPDO::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().
statementLa sentencia SQL para preparar y ejecutar.
Los datos dentro de la consulta deben ser debidamente escapados.
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.
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));
?>
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.