mysqli_stmt_prepare
stmt->prepare
(No version information available, might be only in CVS)
stmt->prepare — Prepara una sentencia SQL para su ejecución
Descripción
Estilo por procedimientos:
Estilo orientado a objetos (método)
mysqli_stmt_prepare() prepara la consulta SQL apuntada por la cadena de consulta terminada en NULL. El objeto de la sentencia tiene que ser asignado por mysqli_stmt_init(). La consulta debe consistir de una sentencia SQL sencilla.
Note: No debe agregar al final el punto y coma o \g a la sentencia.
El parámetro query puede incluir uno o más marcadores de parámetro en la sentencia SQL, insertando el caracter interrogativo (?) en la posición apropiada.
Note: Los marcadores son legales solo en ciertos lugares en la sentencia SQL. Por ejemplo, son permitidos en la lista VALUES() de una sentencia INSERT (para especÃficar calores de columnas para una fila), o en una comparación con una columna en una clausula WHERE para especÃficar un valor de comparación.
Sin embargo, no son permitidos para identificadores (tales como nombres de tabla o columna), en el listado de los nombres de las columnas a ser regresadas por la sentencia SELECT, o para especÃficar operadores de resultado binario, tales como = el signo de igual. La última restricción es necesaria porque serà imposuble determinar el tipo de parámetro. En general, los marcadores de parámetro son legales solo en las sentencias del lenguaje de manipulación de datos (DML), y no en las sentencias del lenguaje de definición de datos (DDL).
Los marcadores de parámetro deben estar enlazados a variables de aplicación usando mysqli_stmt_bind_param() y/o mysqli_stmt_bind_result() antes de ejecutar la sentencia u obtener las filas del resultado.
Valores retornados
Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.
Ver también
mysqli_stmt_init(), mysqli_stmt_execute(), mysqli_stmt_fetch(), mysqli_stmt_bind_param(), mysqli_stmt_bind_result(), y mysqli_stmt_close().
Ejemplos
Example#1 Estilo orientado a objetos
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* create a prepared statement */
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
?>
Example#2 Estilo por procedimientos
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* create a prepared statement */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $city);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);
/* fetch value */
mysqli_stmt_fetch($stmt);
printf("%s is in district %s\n", $city, $district);
/* close statement */
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);
?>
El resultado del ejemplo seria:
Amersfoort is in district Utrecht