Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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();