Compartir por


PDOStatement::bindValue

Descargar controlador PHP

Enlaza un valor a un marcador de posición con nombre o signo de interrogación en la instrucción SQL.

Sintaxis

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

Parámetros

$parameter: identificador de parámetro (mixto). En una instrucción que use marcadores de posición con nombre, emplee un nombre de parámetro (:name). En una instrucción preparada mediante la sintaxis de signos de interrogación, es el índice basado en 1 del parámetro.

$value: valor (mixto) que se va a enlazar con el parámetro.

$data_type: tipo de datos opcional (entero) representado por una constante PDO::PARAM_*. El valor predeterminado es PDO::PARAM_STR.

Valor devuelto

Se devuelve True si la operación se realiza correctamente; de lo contrario, False.

Observaciones

En la versión 2.0 de los Controladores de Microsoft para PHP para SQL Server, se agregó compatibilidad con PDO.

Ejemplo de parámetro

En este ejemplo se muestra que, una vez que se enlaza el valor de $contact, al cambiar el valor, no se modificará el valor transmitido en la consulta.

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

Se recomienda utilizar cadenas como entradas cuando se vinculen valores a una columna decimal o numérica para garantizar la precisión y la exactitud, ya que PHP tiene una precisión limitada para números de punto flotante. Lo mismo se aplica a las columnas de tipo bigint, especialmente cuando los valores están fuera del intervalo de un entero.

Ejemplo de entrada decimal

Este ejemplo de código muestra cómo enlazar un valor decimal como un parámetro de entrada.

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

Consulte también

Clase PDOStatement

PDO