mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare --  Prepara una sentencia SQL para su ejecución

Descripción

Estilo por procedimientos:

bool mysqli_stmt_prepare ( mysqli_stmt stmt, cadena query )

Estilo orientado a objetos (método)

class mysqli_stmtt {

mixto prepare ( cadena query )

}

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.

Nota: 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.

Nota: 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

Ejemplo 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();
?>

Ejemplo 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

Hosting by: hurra.com
Generated: 2007-01-26 18:00:47