PDOStatement::bindValue

Pobieranie sterownika PHP

Przypisuje wartość do nazwanego lub znaku zapytania w instrukcji SQL.

Syntax

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

Parametry

$parametr: (mieszany) identyfikator parametrów. Dla instrukcji używającej nazwanych zastępców używaj nazwy parametru (:name). Dla przygotowanego zdania z użyciem składni znaku zapytania jest to indeks parametru oparty na 1.

$ wartość: (mieszana) wartość do powiązania z parametrem.

$ data_type: Opcjonalny (całkowitoliczbowy) typ danych reprezentowany przez stałą PDO::P ARAM_*. Domyślna to PDO::P ARAM_STR.

Wartość zwracana

PRAWDZIWE w przypadku sukcesu, w przeciwnym razie FAŁSZYWE.

Remarks

Wsparcie dla PDO zostało dodane w wersji 2.0 sterowników Microsoft dla PHP dla SQL Server.

Przykład parametru

Ten przykład pokazuje, że po ograniczeniu wartości $contact zmiana wartości nie zmienia wartości przekazanej w zapytaniu.

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

Zaleca się używanie łańcuchów jako danych wejściowych przy wiązaniu wartości z kolumną dziesiętną lub liczbową , aby zapewnić precyzję i dokładność, ponieważ PHP ma ograniczoną precyzję dla liczb zmiennoprzecinkowych. To samo dotyczy kolumn bigint, zwłaszcza gdy wartości wykraczają poza zakres liczby całkowitej.

Przykład wejścia dziesiętnego

Ten przykład kodu pokazuje, jak powiązać wartość dziesiętną jako parametr wejściowy.

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