Share via


PDOStatement::bindValue

Scaricare il driver PHP

Associa un valore a un segnaposto denominato o punto interrogativo nell'istruzione SQL.

Sintassi

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

Parametri

$parameter: identificatore del parametro (misto). Per un'istruzione che usa segnaposti denominati, usare un nome parametro (:name). Per un'istruzione preparata che usa la sintassi punto interrogativo, è l'indice in base 1 del parametro.

$value: valore (misto) da associare al parametro.

$data_type: tipo di dati (intero) facoltativo rappresentato da una costante PDO::PARAM_*. Il valore predefinito è PDO::PARAM_STR.

Valore restituito

TRUE in caso di esito positivo; in caso contrario, FALSE.

Osservazioni

Il supporto per PDO è stato aggiunto nella versione 2.0 dei driver Microsoft per PHP per SQL Server.

Esempio di parametro

Questo esempio mostra che dopo l'associazione del valore di $contact, la modifica del valore non modifica il valore passato nella query.

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

Nota

È consigliabile usare stringhe come input durante l'associazione di valori a una colonna decimal o numeric per garantire precisione e accuratezza, dato che PHP offre una precisione limitata per i numeri a virgola mobile. Lo stesso vale per le colonne di tipo bigint, soprattutto quando i valori non sono compresi nell'intervallo di un integer.

Esempio di input decimale

Questo esempio di codice mostra come associare un valore decimale come parametro di input.

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

Vedere anche

Classe PDOStatement

PDO