Documentación offline PHP master

PDOStatement::execute

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

PDOStatement::execute

Ejecuta una consulta preparada

Descripción#

public PDOStatement::execute([array $params]): bool
```php

Ejecuta una [consulta preparada](#pdo.prepared-statements). Si la consulta preparada incluye marcadores de posición, se puede:

- PDOStatement::bindParam y/o PDOStatement::bindValue debe ser llamado para vincular variables o valores (respectivamente) a los marcadores de parámetros. Las variables vinculadas pasan sus valores en entrada y reciben los valores de salida, si los hay, de sus respectivos marcadores de posición

- o pasar un array de valores de parámetros, solo en entrada

## Parámetros

`params`  
Un array de valores con tantos elementos como parámetros a asociar en la consulta SQL que será ejecutada. Todos los valores son tratados como constantes `PDO::PARAM_STR`.

Los valores múltiples no pueden ser vinculados a un solo parámetro; por ejemplo, no está permitido vincular dos valores a un solo parámetro nombrado en una cláusula IN().

Vincular más valores de los especificados no es posible; si hay más claves en `params` que en el código SQL utilizado para PDO::prepare, entonces la consulta preparada fallará y se generará un error.

## Valores devueltos

Esta función retorna `true` en caso de éxito o `false` si ocurre un error.

## Errores/Excepciones

Emite un error de nivel `E_WARNING` si el atributo `PDO::ATTR_ERRMODE` está definido a `PDO::ERRMODE_WARNING`.

Lanza una excepción `PDOException` si el atributo `PDO::ATTR_ERRMODE` está definido a `PDO::ERRMODE_EXCEPTION`.

## Ejemplos

Ejecuta una consulta preparada con variables y valores vinculados
prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND couleur LIKE :couleur'); $sth->bindParam('calories', $calories, PDO::PARAM_INT); /* Los nombres también pueden ser prefijados con dos puntos ":" (opcional) */ $sth->bindValue(':colour', "%$colour%"); $sth->execute(); ?>
Ejecuta una consulta preparada con un array de valores nombrados
prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND couleur = :couleur'); $sth->execute(array('calories' => $calories, 'colour' => $couleur)); /* Las claves del array también pueden ser prefijadas con dos puntos ":" (opcional) */ $sth->execute(array(':calories' => $calories, ':couleur' => $couleur)); ?>
Ejecuta una consulta preparada con un array de valores posicionales
prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND couleur = ?'); $sth->execute(array($calories, $colour)); ?>
Ejecuta una consulta preparada con variables vinculadas a un marcador de posición
prepare('SELECT nom, couleur, calories FROM fruit WHERE calories < ? AND couleur = ?'); $sth->bindParam(1, $calories, PDO::PARAM_INT); $sth->bindParam(2, $couleur, PDO::PARAM_STR, 12); $sth->execute(); ?>
Ejecuta una consulta preparada utilizando un array para las cláusulas IN
prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)"); $sth->execute($params); ?>

```php

Notas#

[!NOTE] Algunos drivers requieren cerrar el cursor antes de ejecutar la siguiente consulta.

Véase también#

PDO::prepare, PDOStatement::bindParam, PDOStatement::fetch, PDOStatement::fetchAll, PDOStatement::fetchColumn