(No version information available, might be only in CVS)
stmt->bind_param — Enlaza variables como parámetros a una sentencia preparada
Estilo por procedimientos:
Estilo orientado a objetos (método):
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.
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.
Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.
mysqli_stmt_bind_result(), mysqli_stmt_execute(), mysqli_stmt_fetch(), mysqli_prepare(), mysqli_stmt_send_long_data(), mysqli_stmt_errno(), y mysqli_stmt_error().
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.