PDOStatement::bindColumn — Lier une colonne à une variable PHP (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDOStatement::bindColumn ( mixte $column , mixte &$param [, int $type [, int $maxlen [, mixte $driverdata ]]] )
Organise la liaison d'une variable spécifique à une colonne donnée dans un jeu de résultats de requête. Chaque appel à PDOStatement::fetch() ou PDOStatement::fetchAll() mettra à jour toutes les variables liées à la colonne.
Remarque : les informations PDO sur les colonnes ne sont pas toujours disponibles avant l'exécution de l'instruction. Les applications portables doivent appeler cette fonction (méthode) après PDOStatement::execute(). Cependant, lors de l'utilisation du pilote PgSQL, pour pouvoir lier une colonne LOB en tant que flux, l'application doit appeler cette méthode avant d'appeler PDOStatement::execute(), sinon l'OID du grand objet est renvoyé sous forme d'entier.
Numéro de colonne (indexé à partir de 1) ou nom de colonne dans le jeu de résultats de colonne . Si vous utilisez des noms de colonnes, notez que les noms doivent être cohérents avec la casse des noms de colonnes renvoyés par le pilote.
param Le nom de la variable PHP qui sera liée à la colonne
typeLe type de données du paramètre spécifié par les constantes PDO::PARAM_*.
indice de préallocation maxlen .
Paramètre facultatif du pilote driverdata .
Renvoie VRAI en cas de succès ou FAUX en cas d'échec.
Lier les colonnes d'un jeu de résultats à des variables PHP est un moyen efficace de rendre les données contenues dans chaque ligne immédiatement disponibles dans votre application. L'exemple suivant montre comment PDO lie et récupère des colonnes avec diverses options et valeurs par défaut.
<?phpfunction readData($dbh) { $sql = 'SELECT nom, couleur, calories DU fruit'; try { $stmt = $dbh->prepare($stmt->execute(); Liaison de nombres*/ $stmt->bindColumn(1, $name); $stmt->bindColumn(2, $colour); Liaison par nom de colonne*/ $stmt->bindColumn('calories', $cals); while ($row = $stmt->fetch(PDO::FETCH_BOUND)) { $data = $name . couleur "t" . $cals . "n"; print $data; } } catch (PDOException $e) { print $e->getMessage(); }}readData($dbh);?>
La routine ci-dessus affichera :
rouge pomme 150jaune banane 175vert kiwi 75orange orange 150rouge mangue 200rouge fraise 25