Saltar al contenido

Función mysqli_prepare() de PHP

En este artículo, discutiremos la función mysqli_prepare() de PHP, que se utiliza para preparar una sentencia SQL para su ejecución.

Introducción a la función mysqli_prepare()

La función mysqli_prepare() es una función integrada en PHP que se utiliza para preparar una sentencia SQL para su ejecución. La función mysqli_prepare() crea un objeto de sentencia preparada y devuelve una referencia a ese objeto. Las sentencias preparadas son una herramienta poderosa para trabajar con bases de datos, ya que permiten escribir consultas SQL seguras y parametrizadas.

Cómo usar la función mysqli_prepare()

El uso de la función mysqli_prepare() es sencillo. Aquí tienes un ejemplo:

¿Cómo usar la función mysqli_prepare()?

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM users WHERE id=?";
$stmt = $mysqli->prepare($query);

if (!$stmt) {
    echo "Prepare failed: " . $mysqli->error;
    exit();
}

$id = 1;
$stmt->bind_param("i", $id); // "i" specifies that the variable is an integer

if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->error;
} else {
    // Note: get_result() requires the mysqlnd driver.
    // For other drivers, use mysqli_stmt_fetch() instead.
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        // process the row
    }
}
$stmt->close();
$mysqli->close();
?>

En este ejemplo, primero creamos un nuevo objeto MySQLi utilizando la clase mysqli. Luego verificamos si la conexión fue exitosa usando la propiedad connect_errno. Si la conexión fue exitosa, definimos una consulta SQL que selecciona todas las filas de la tabla users donde la columna id coincide con un valor de marcador de posición. Luego llamamos a $mysqli->prepare() con la cadena de consulta para crear un objeto de sentencia preparada y verificamos que la preparación fue exitosa. Luego establecemos la variable $id en 1 antes de vincularla al marcador de posición usando $stmt->bind_param(). El "i" en la cadena de tipo especifica que la variable vinculada es un entero. Otros tipos admitidos incluyen "s" para cadena, "d" para doble y "b" para BLOB. Luego ejecutamos la sentencia preparada usando $stmt->execute(), agregando manejo de errores en caso de que la ejecución falle. Luego recuperamos el conjunto de resultados usando $stmt->get_result() y recorremos las filas usando $result->fetch_assoc(). Finalmente, cerramos la sentencia y la conexión usando el método close().

Conclusión

En conclusión, la función mysqli_prepare() es una herramienta poderosa para trabajar con bases de datos en PHP. Al comprender cómo usar la función, puedes escribir consultas SQL seguras y parametrizadas que sean resistentes a ataques de inyección SQL.

Práctica

¿Qué es cierto sobre las sentencias preparadas en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.