mysqli_stmt::attr_set
mysqli_stmt::bind_result
MySQLi_STMT
PHP Manual

# mysqli_stmt::bind_param

# mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Lie des variables à une requête MySQL

### Description

Style orienté objet

bool mysqli_stmt::bind_param ( string `$types` , mixed `&$var1` [, mixed `&$...` ] )

Style procédural

bool mysqli_stmt_bind_param ( mysqli_stmt `$stmt` , string `$types` , mixed `&$var1` [, mixed `&$...` ] )

Sert à lier des variables à une requête MySQL préparée par mysqli_prepare().

> Note: Si la taille des données dépasse la taille maximal d'un paquet, (max_allowed_packet), vous devez spécifier le caractère b dans le paramètre `types` et utiliser la fonction mysqli_stmt_send_long_data() pour envoyer le message par paquets.

> Note: Vous devez être prudent lors de l'utilisation de mysqli_stmt_bind_param() avec la fonction call_user_func_array(). Notez que mysqli_stmt_bind_param() nécessite que ses paramètres soient passés par référence, alors que la fonction call_user_func_array() peut accepter comme paramètre une liste de variables qui peuvent représenter des références ou des valeurs.

### Liste de paramètres

`stmt`

  Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

`types`

  Une chaîne de caractères qui contient un ou plusieurs caractères qui spécifient le type de la variable à lier :

  Caractère de spécification des types
  Caractère | Description
  --- | ---
  i | correspond à une variable de type entier
  d | correspond à une variable de type nombre décimal
  s | correspond à une variable de type chaîne de caractères
  b | correspond à une variable de type BLOB, qui sera envoyé par paquets

`var1`

  Le nombre de variables et la longueur de la chaîne de caractères `types` doivent correspondre aux paramètres de la requête.

### Valeurs de retour

Cette fonction retourne `TRUE` en cas de succès ou `FALSE` si une erreur survient.

### Exemples

Style orienté objet

`<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %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;
/* Exécution de la requête */
$stmt->execute();
printf("%d ligne insérée.\n", $stmt->affected_rows);
/* Fermeture du traitement */
$stmt->close();
/* Nettoyage de la table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", $mysqli->affected_rows);
/* Fermeture de la connexion */
$mysqli->close();
?>`

Style procédural

`<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');
/* Vérification de la connexion */
if (!$link) {
printf("Échec de la connexion : %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;
/* Exécution de la requête */
mysqli_stmt_execute($stmt);
printf("%d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));
/* Fermeture du traitement */
mysqli_stmt_close($stmt);
/* Nettoyage de la table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", mysqli_affected_rows($link));
/* Fermeture de la connexion */
mysqli_close($link);
?>`

L'exemple ci-dessus va afficher :

    1 ligne insérée.
    1 ligne effacée.

### Voir aussi

- mysqli_stmt_bind_result() - Lie des variables à un jeu de résultats
- mysqli_stmt_execute() - Exécute une requête préparée
- mysqli_stmt_fetch() - Lit des résultats depuis une requête MySQL préparée dans des variables liées
- mysqli_prepare() - Prépare une requête SQL pour l'exécution
- mysqli_stmt_send_long_data() - Envoie des données MySQL par paquets
- mysqli_stmt_errno() - Retourne un code erreur pour la dernière requête
- mysqli_stmt_error() - Retourne une description de la dernière erreur de traitement

mysqli_stmt::attr_set
mysqli_stmt::bind_result
MySQLi_STMT
PHP Manual