PDOStatement::bindValue

PHP-stuurprogramma downloaden

Bindt een waarde aan een benoemde of vraagteken-placeholder in de SQL-instructie.

Syntax

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

Parameters

$ parameter: Een (gemengde) parameter-identificatie. Voor een statement met benoemde placeholders, gebruik een parameternaam (:name). Voor een voorbereide uitspraak met de vraagtekensyntaxis is het de 1-gebaseerde index van de parameter.

$ waarde: De (gemengde) waarde die aan de parameter moet binden.

$ data_type: Het optionele (geheel) datatype dat wordt weergegeven door een PDO::P ARAM_*-constante. De standaard is PDO::P ARAM_STR.

Retourwaarde

WAAR wat betreft succes, anders ONWAAR.

Remarks

Ondersteuning voor PDO werd toegevoegd in versie 2.0 van de Microsoft Drivers for PHP for SQL Server.

Parametervoorbeeld

Dit voorbeeld laat zien dat nadat de waarde van $contact is gebonden, het wijzigen van de waarde de waarde die in de query is gegeven niet verandert.

<?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";  
}  
?>  

Note

Het wordt aanbevolen om strings als invoer te gebruiken bij het binden van waarden aan een decimale of numerieke kolom om precisie en nauwkeurigheid te waarborgen, aangezien PHP beperkte precisie heeft voor drijvendekommagetallen. Hetzelfde geldt voor bigintkolommen, vooral wanneer de waarden buiten het bereik van een geheel getal liggen.

Voorbeeld van decimale invoer

Dit codevoorbeeld laat zien hoe een decimale waarde als invoerparameter wordt gebind.

<?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();