Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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();