PDOStatement::bindValue
SQL 문의 명명된 자리 표시 또는 물음표 자리 표시자에 값을 바인딩합니다.
구문
bool PDOStatement::bindValue($parameter, $value[, $data_type]);
매개 변수
$매개 변수: (혼합) 매개 변수 식별자입니다. 명명된 자리 표시자를 사용하는 명령문의 경우 매개 변수 이름(:name)을 사용합니다. 물음표 구문을 사용하는 준비된 문의 경우 매개 변수의 1부터 시작하는 인덱스입니다.
$value: 매개 변수에 바인딩할 (혼합) 값입니다.
$data_type: PDO::P ARAM_* 상수로 표시되는 선택적(정수) 데이터 형식입니다. 기본값은 PDO::P ARAM_STR입니다.
Return Value
성공하면 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
Microsoft Drivers for PHP for SQL Server의 2.0 버전에서 PDO에 대한 지원이 추가되었습니다.
매개 변수 예제
이 예제는 $contact 값이 바인딩된 후 값을 변경하면 쿼리에 전달된 값을 변경한다는 것을 보여 줍니다.
<?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";
}
?>
참고 항목
PHP에서는 부동 소수점 숫자의 정밀도가 제한되어 있으므로 decimal 또는 numeric 열에 값을 바인딩할 때는 정밀도와 정확도를 보장하기 위해 문자열을 입력으로 사용하는 것이 좋습니다. 특히 값이 정수 범위를 벗어난 경우 bigint 열에도 동일하게 적용됩니다.
10진수 입력 예제
이 코드 샘플에서는 10진수 값을 입력 매개 변수로 바인딩하는 방법을 보여줍니다.
<?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();