Forum und email

mysqli_stmt_bind_param

stmt->bind_param

(No version information available, might be only in CVS)

stmt->bind_param — Enlaza variables como parámetros a una sentencia preparada

Descripción

Estilo por procedimientos:

bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , cadena $types , mixto $&var1 [, mixto $& ... ] )

Estilo orientado a objetos (método):

mysqli_stmt
bool bind_param ( matriz $types , mixto $&var1 [, mixto $& ... ] )

mysqli_stmt_bind_param() es usada para enlazar variables para los marcadores de parámetros en la sentencia SQL que fue pasada a mysqli_prepare(). La cadena types contiene uno o más caracteres los cuales especifican los tipos para las variables enlazadas correspondientes.

Especificación de caracteres de tipo
Caracter Descripción
i La variable correspondiente tiene tipo entero
d La variable correspondiente tiene tipo doble
s La variable correspondiente tiene tipo cadena
b La variable correspondiente tiene tipo BLOB y será enviada en paquetes

Note: Si el tamaño de los datos de la variable exceden el tamaño maximo permitido para un paquete (max_allowed_package), tienes que específicar b en types y usar mysqli_stmt_send_long_data() para enviar los datos en paquetes.
El número de variables y longitud de la cadena types debe coincidir los parámetros en la sentencia.

Valores retornados

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

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();
}

$stmt $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n"$stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n"$mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Example#2 Estilo por procedimientos

<?php
$link 
mysqli_connect('localhost''my_user''my_password''world');

/* check connection */
if (!$link) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$stmt mysqli_prepare($link"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt'sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* execute prepared statement */
mysqi_stmt_execute($stmt);

printf("%d Row inserted.\n"mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link"DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n"mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

El resultado del ejemplo seria:

1 Row inserted.
1 Row deleted.