PDOStatement::bindValue

Stáhnout ovladač PHP

Přiřadí hodnotu na pojmenovaný nebo otázník v SQL příkazu.

Syntax

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

Parametry

$parametr: (smíšený) identifikátor parametru. Pro příkaz používající pojmenované zástupce použijte název parametru (:name). Pro připravené tvrzení využívající syntaxi otazníku je to index parametru založený na 1.

$ hodnota: (smíšená) hodnota, kterou je třeba navázat na parametr.

$ data_type: Volitelné (celočíselné) datové číslo reprezentované konstantou PDO::P ARAM_*. Výchozí je PDO::P ARAM_STR.

Návratová hodnota

PRAVDA v případě úspěchu, jinak NEPRAVDA.

Remarks

Podpora PDO byla přidána ve verzi 2.0 Microsoft Drivers for PHP for SQL Server.

Příklad parametru

Tento příklad ukazuje, že po omezení hodnoty $contact změna hodnoty nezmění hodnotu zadanou v dotazu.

<?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

Doporučuje se používat řetězce jako vstupy při vázání hodnot na desetinný nebo číselný sloupec , aby byla zajištěna přesnost a přesnost, protože PHP má omezenou přesnost pro čísla s plovoucí desetinnou čárkou. Totéž platí pro sloupce bigint, zejména když hodnoty přesahují rozsah celého čísla.

Příklad desetinného vstupu

Tento vzor kódu ukazuje, jak navázat desetinnou hodnotu jako vstupní parametr.

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