(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::bindColumn — Lie une colonne à une variable PHP
$column
,&$var
,$type
= PDO::PARAM_STR,$maxLength
= 0,$driverOptions
= null
PDOStatement::bindColumn() fait en sorte qu'une variable PHP soit liée à une colonne données dans le jeu de résultats dans une requête. Chaque appel à la fonction PDOStatement::fetch() ou PDOStatement::fetchAll() met à jour toutes les variables qui sont liées aux colonnes.
Note:
Étant donné que les informations sur les colonnes ne sont pas toujours disponibles à PDO tant que la requête n'est pas exécutée, les applications portables doivent appeler cette fonction après la fonction PDOStatement::execute().
Cependant, pour pouvoir lier une colonne de type LOB avec un flux lors de l'utilisation du pilote PostGreSQL, les applications doivent appeler cette méthode avant d'appeler PDOStatement::execute(), sous peine de recevoir l'objet OID sous forme d'entier.
column
Numéro de la colonne (en commençant à 1) ou nom de la colonne dans le jeu de résultats. Si vous utilisez les noms de colonnes, assurez-vous que le nom corresponde à la casse de la colonne, comme retourné par le pilote.
var
Nom de la variable PHP à laquelle la colonne doit être liée.
type
Type du paramètre, spécifié par les constantes
PDO::PARAM_*
.
maxLength
Une astuce pour la pré-allocation.
driverOptions
Paramètres optionnels pour la bibliothèque.
Émet une erreur de niveau E_WARNING
si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_WARNING
.
Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE
est défini
à PDO::ERRMODE_EXCEPTION
.
Exemple #1 Lie l'affichage du jeu de résultats à des variables PHP
Lie les colonnes du jeu de résultats aux variables PHP est une façon agréable de rendre les données contenues dans chaque ligne immédiatement disponible à votre application. L'exemple suivant montre comment PDO vous autorise à lier et récupérer les colonnes avec une variété d'options.
<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();
/* Lie par les numéros de colonnes */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);
/* Lie par les noms de colonnes */
$stmt->bindColumn('calories', $cals);
while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}
readData($dbh);
?>
Résultat de l'exemple ci-dessus est similaire à :
pomme rouge 150 banane jaune 175 kiwi vert 75 orange orange 150 mangue rouge 200 fraise rouge 25