PDOStatement::bindValue

Télécharger le pilote PHP

Lie une valeur à un espace réservé nommé ou constitué de points d’interrogation dans l’instruction SQL.

Syntaxe

  
bool PDOStatement::bindValue($parameter, $value[, $data_type]);  

Paramètres

$parameter : identificateur de paramètre (mixte). Pour une instruction qui utilise des espaces réservés nommés, utilisez un nom de paramètre (:name). Pour une instruction préparée qui utilise la syntaxe constituée de points d’interrogation, il s’agit de l’index en base 1 du paramètre.

$value : valeur (mixte) à lier au paramètre.

$data_type : type de données (entier) facultatif représenté par une constante PDO::PARAM_*. La valeur par défaut est PDO::PARAM_STR.

Valeur de retour

TRUE en cas de réussite ; sinon, FALSE.

Notes

La prise en charge de PDO a été ajoutée dans la version 2.0 de Pilotes Microsoft SQL Server pour PHP.

Exemple de paramètre

Cet exemple montre qu’une fois que la valeur de $contact est liée, sa modification ne change pas la valeur transmise dans la requête.

<?php  
$database = "AdventureWorks";  
$server = "(local)";  
$conn = new PDO("sqlsrv:server=$server ; Database = $database", "", "");  
  
$contact = "Sales Agent";  
$stmt = $conn->prepare("select * from Person.ContactType where name = ?");  
$stmt->bindValue(1, $contact);  
$contact = "Owner";  
$stmt->execute();  
  
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
   print "$row[Name]\n\n";  
}  
  
$stmt = null;  
$contact = "Sales Agent";  
$stmt = $conn->prepare("select * from Person.ContactType where name = :contact");  
$stmt->bindValue(':contact', $contact);  
$contact = "Owner";  
$stmt->execute();  
  
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
   print "$row[Name]\n\n";  
}  
?>  

Notes

Il est recommandé d’utiliser des chaînes en entrée pour lier des valeurs à une colonne décimale ou numérique pour des raisons de précision et d’exactitude, car PHP n’offre qu’une précision limitée pour les nombres à virgule flottante. Il en va de même pour les colonnes bigint, en particulier si les valeurs sont en dehors de la plage des entiers.

Exemple d’entrée décimale

Cet exemple de code montre comment lier une valeur décimale comme paramètre d’entrée.

<?php  
$database = "Test";  
$server = "(local)";  
$conn = new PDO("sqlsrv:server=$server ; Database = $database", "", "");  

// Assume TestTable exists with a decimal field 
$input = 9223372036854.80000;
$stmt = $conn->prepare("INSERT INTO TestTable (DecimalCol) VALUES (?)");
// by default it is PDO::PARAM_STR, rounding of a large input value may
// occur if PDO::PARAM_INT is specified
$stmt->bindValue(1, $input, PDO::PARAM_STR);
$stmt->execute();

Voir aussi

PDOStatement, classe

PDO