(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::exec — Ejecuta una consulta SQL y devuelve el número de filas afectadas
PDO::exec() ejecuta una consulta SQL en una sola llamada de función, devuelve el número de filas afectadas por la consulta.
PDO::exec() no devuelve resultados para una consulta SELECT. Para una consulta SELECT que se necesite una sola vez en el programa, utilice en su lugar la función PDO::query(). Para una consulta que se necesite varias veces, prepare un objeto PDOStatement con la función PDO::prepare() y ejecute la consulta con la función PDOStatement::execute().
statement
La consulta a preparar y ejecutar.
Los datos contenidos en la consulta deben ser properamente escapados.
PDO::exec() devuelve el número de filas que han sido modificadas
o eliminadas por la consulta SQL ejecutada. Si ninguna fila es afectada,
la función PDO::exec() devolverá 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 se basa incorrectamente en el valor devuelto por PDO::exec(), donde una consulta que no afecta ninguna fila equivale a llamar a die():
<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // incorrecto
?>
Emits an error with level E_WARNING
if the attribute PDO::ATTR_ERRMODE
is set
to PDO::ERRMODE_WARNING
.
Throws a PDOException if the attribute PDO::ATTR_ERRMODE
is set to PDO::ERRMODE_EXCEPTION
.
Ejemplo #1 Ejecutar una consulta DELETE
Cuenta el número de filas eliminadas para una consulta DELETE con ninguna cláusula WHERE.
<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
/* Eliminación de todas las filas de la tabla FRUIT */
$count = $dbh->exec("DELETE FROM fruit");
/* Devuelve el número de filas eliminadas */
print "Eliminación de $count filas.\n";
?>
El resultado del ejemplo sería:
Eliminación de 1 filas.