PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindColumn Lie une colonne à une variable PHP

Description

public bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

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.

Liste de paramètres

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.

param

Nom de la variable PHP à laquelle la colonne doit être liée.

type

Type du paramètre, spécifié par les constantes PDO::PARAM_* constants.

maxlen

Une astuce pour la pré-allocation.

driverdata

Paramètres optionnels pour la bibliothèque.

Valeurs de retour

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

Exemples

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
function readData($dbh) {
  
$sql 'SELECT nom, couleur, calories FROM fruit';
  try {
    
$stmt $dbh->prepare($sql);
    
$stmt->execute();

    
/* Lie par les numéros de colonnes */
    
$stmt->bindColumn(1$nom);
    
$stmt->bindColumn(2$couleur);

    
/* Lie par les noms de colonnes */
    
$stmt->bindColumn('calories'$cals);

    while (
$row $stmt->fetch(PDO::FETCH_BOUND)) {
      
$data $nom "\t" $couleur "\t" $cals "\n";
      print 
$data;
    }
  }
  catch (
PDOException $e) {
    print 
$e->getMessage();
  }
}
readData($dbh);
?>

L'exemple ci-dessus va afficher :

pomme   rouge     150
banane  jaune  175
kiwi    vert   75
orange  orange  150
mangue   rouge     200
fraise      rouge     25
  

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
-20
Spaceeman
11 months ago
// What I've added function :
//
function PDO_statement_bind_columns(
        $statement, &$var1,
        &$var2 = null, &$var3 = null, &$var4 = null, &$var5 = null, &$var6 = null,  &$var7 = null,
        &$var8 = null, &$var9 = null, &$var10 = null, &$var11 = null, &$var12 = null, &$var13 = null,
        &$var14 = null, &$var15 = null, &$var16 = null, &$var17 = null, &$var18 = null, &$var19 = null,
        &$var20 = null, &$var21 = null, &$var22 = null, &$var23 = null, &$var24 = null, &$var25 = null,
        &$var26 = null, &$var27 = null, &$var28 = null, &$var29 = null, &$var30 = null, &$var31 = null,
        &$var32 = null, &$var33 = null, &$var34 = null, &$var35 = null, &$var36 = null, &$var37 = null,
        &$var38 = null, &$var39 = null, &$var40 = null, &$var41 = null, &$var42 = null, &$var43 = null
    )
    {
        $numargs = func_num_args();
        for( $i = 1 ; $i < $numargs ; ++$i )
        {
            $argname = 'var'.$i;           
            if( ! $statement->bindColumn( $i, $$argname ) ) throw new \Exception("statement->bindColumn $i");
        }
    }
To Top