(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().
statement
La 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.