Lie un paramètre à un nom de variable spécifique

# PDOStatement::bindParam

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

PDOStatement::bindParam — Lie un paramètre à un nom de variable spécifique

### Description

public function PDOStatement::bindParam(
string|int `$param`,
mixed `&$var`,
int `$type` = `PDO::PARAM_STR`,
int `$maxLength` = 0,
mixed `$driverOptions` = `null`
): bool

Lie une variable PHP à un marqueur nommé ou interrogatif correspondant dans une requête SQL utilisée pour préparer la requête. Contrairement à PDOStatement::bindValue(), la variable est liée en tant que référence et ne sera évaluée qu'au moment de l'appel à la fonction PDOStatement::execute().

La plupart des paramètres sont des paramètres d'entrées, et sont utilisés en lecture seule pour construire la requête (mais peuvent néanmoins être transtypés en fonction de `type`). Quelques drivers supportent l'invocation de procédures stockées qui retournent des données en tant que paramètres de sortie, et quelques autres en tant que paramètres entrées / sorties qui sont envoyés ensemble et sont mis à jour pour les recevoir.

### Liste de paramètres

`param`

  Identifiant. Pour une requête préparée utilisant des marqueurs nommés, ce sera le nom du paramètre sous la forme :name. Pour une requête préparée utilisant les marqueurs interrogatifs, ce sera la position indexée +1 du paramètre.

`var`

  Nom de la variable PHP à lier au paramètre de la requête SQL.

`type`

  Type explicite de données pour le paramètre utilisant les constantes `PDO::PARAM_*`. Pour retourner un paramètre INOUT depuis une procédure stockée, utiliser l'opérateur OR pour définir les bits `PDO::PARAM_INPUT_OUTPUT` pour le paramètre `type`.

`maxLength`

  Longueur du type de données. Pour indiquer qu'un paramètre est un paramètre OUT depuis une procédure stockée, il faut explicitement définir la longueur. Significatif uniquement lorsque le paramètre `type` est `PDO::PARAM_INPUT_OUTPUT`.

`driverOptions`

### Valeurs de retour

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

### Erreurs / Exceptions

É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`.

### Exemples

Exemple #1 Exécution d'une requête préparée avec des emplacements nommés

    <?php
    /* Exécution d'une requête préparée en liant des variables PHP */
    $calories = 150;
    $couleur = 'rouge';
    $sth = $dbh->prepare('SELECT nom, couleur, calories
        FROM fruit
        WHERE calories < :calories AND couleur = :couleur');
    $sth->bindParam('calories', $calories, PDO::PARAM_INT);
    /* Les noms peuvent aussi être préfixés par des deux-points ":" (facultatif) */
    $sth->bindParam(':couleur', $couleur, PDO::PARAM_STR);
    $sth->execute();
    ?>

Exemple #2 Exécution d'une requête préparée avec des marqueurs de positionnement

    <?php
    /* Exécution d'une requête préparée en liant des variables PHP */
    $calories = 150;
    $couleur = 'rouge';
    $sth = $dbh->prepare('SELECT nom, couleur, calories
        FROM fruit
        WHERE calories < ? AND couleur = ?');
    $sth->bindParam(1, $calories, PDO::PARAM_INT);
    $sth->bindParam(2, $couleur, PDO::PARAM_STR);
    $sth->execute();
    ?>

Exemple #3 Appel d'une procédure stockée avec un paramètre INOUT

    <?php
    /* Appel d'une procédure stockée avec un paramètre INOUT */
    $couleur = 'rouge';
    $sth = $dbh->prepare('CALL puree_fruit(?)');
    $sth->bindParam(1, $couleur, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
    $sth->execute();
    print "Après avoir pressé le fruit, la couleur est : $couleur";
    ?>

### Voir aussi

- PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
- PDOStatement::execute() - Exécute une requête préparée
- PDOStatement::bindValue() - Associe une valeur à un paramètre

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open