Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Binder ett värde till en namngiven eller frågeteckensplaceholder i SQL-satsen.
Syntax
bool PDOStatement::bindValue($parameter, $value[, $data_type]);
Parameters
$ parameter: En (blandad) parameteridentifierare. För ett uttalande som använder namngivna platshållare, använd ett parameternamn (:name). För ett förberetts påstående med frågeteckensyntax är det det 1-baserade indexet för parametern.
$ värde: Det (blandade) värdet som binds till parametern.
$ data_type: Den valfria (heltals)datatypen representerad av en PDO::P ARAM_*-konstant. Standardinställningen är PDO::P ARAM_STR.
Returvärde
SANT om framgång, annars FEL.
Remarks
Stöd för PDO lades till i version 2.0 av Microsoft Drivers för PHP för SQL Server.
Parameterexempel
Detta exempel visar att efter att värdet av $contact är bundet, ändrar inte ett värde som skickas i frågan.
<?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
Det rekommenderas att använda strängar som indata när man binder värden till en decimal- eller numerisk kolumn för att säkerställa precision och noggrannhet, eftersom PHP har begränsad precision för flyttalstal. Samma gäller för bigintkolumner, särskilt när värdena ligger utanför intervallet för ett heltal.
Decimalinmatningsexempel
Detta kodexempel visar hur man binder ett decimalt värde som en indataparameter.
<?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();