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
Style procédural
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
Exemple #1 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(); ?>
Exemple #2 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