# mysqli_stmt::execute

# mysqli_stmt_execute

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::execute -- mysqli_stmt_execute — Ejecuta una consulta preparada

### Descripción

Estilo orientado a objetos

mysqli_stmt::execute(): bool

Estilo por procedimientos

mysqli_stmt_execute(mysqli_stmt `$stmt`): bool

Ejecuta una consulta que ha sido previamente preparada usando la función mysqli_prepare(). Cuando se ejecutó cualquier marcador de parámetro que existe, será automáticamente reemplazado con los datos apropiados.

Si la sentencia es `UPDATE`, `DELETE`, o `INSERT`, se puede determinar el número total de filas afectadas usando le función mysqli_stmt_affected_rows(). Asimismo, si la consulta produce un conjunto de resultados se usa la función mysqli_stmt_fetch().

> Nota:

> Al usar mysqli_stmt_execute(), se debe usar la función mysqli_stmt_fetch() para obtener los datos antes de realizar cualquier consulta adicional.

### Parámetros

`stmt`

  Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().

### Valores devueltos

Devuelve `true` en caso de éxito o `false` en caso de error.

### Ejemplos

Ejemplo #1 Estilo orientado a objetos

`<?php
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("CREATE TABLE myCity LIKE City");
/* Preparar una sentencia INSERT */
$consulta = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$sentencia = $mysqli->prepare($consulta);
$sentencia->bind_param("sss", $val1, $val2, $val3);
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';
/* Ejecutar la sentencia */
$sentencia->execute();
$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';
/* Ejecutar la sentencia */
$sentencia->execute();
/* cerrar la sentencia */
$sentencia->close();
/* recuperar todas las filas de myCity */
$consulta = "SELECT Name, CountryCode, District FROM myCity";
if ($resultado = $mysqli->query($consulta)) {
while ($fila = $resultado->fetch_row()) {
printf("%s (%s,%s)\n", $fila[0], $fila[1], $fila[2]);
}
/* liberar el conjunto de resultados */
$resultado->close();
}
/* eliminar la tabla */
$mysqli->query("DROP TABLE myCity");
/* cerrar la conexión */
$mysqli->close();
?>`

Ejemplo #2 Estilo por procedimientos

`<?php
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");
/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($enlace, "CREATE TABLE myCity LIKE City");
/* Preparar una sentencia INSERT */
$consulta = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$sentencia = mysqli_prepare($enlace, $consulta);
mysqli_stmt_bind_param($sentencia, "sss", $val1, $val2, $val3);
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';
/* Ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';
/* Ejecutar la sentencia */
mysqli_stmt_execute($sentencia);
/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
/* recuperar todas las filas de myCity */
$consulta = "SELECT Name, CountryCode, District FROM myCity";
if ($resultado = mysqli_query($enlace, $consulta)) {
while ($fila = mysqli_fetch_row($resultado)) {
printf("%s (%s,%s)\n", $fila[0], $fila[1], $fila[2]);
}
/* liberar el conjunto de resultados */
mysqli_free_result($resultado);
}
/* eliminar la tabla */
mysqli_query($enlace, "DROP TABLE myCity");
/* cerrar la conexión */
mysqli_close($enlace);
?>`

El resultado de los ejemplos sería:

    Stuttgart (DEU,Baden-Wuerttemberg)
    Bordeaux (FRA,Aquitaine)

### Ver también

- mysqli_prepare() - Prepara una sentencia SQL para su ejecución
- mysqli_stmt_bind_param() - Agrega variables a una sentencia preparada como parámetros
- mysqli_stmt_get_result() - Obtiene un conjunto de resultados de una sentencia preparada