sqlsrv_fetch_object

(사용 가능한 버전 정보가 없으며 Git에만 있을 수 있음)

sqlsrv_fetch_object — 결과 집합에서 다음 데이터 행을 개체로 검색합니다.

sqlsrv_fetch_object(
    resource $stmt,
    string $className = ?,
    array $ctorParams = ?,
    int $row = ?,
    int $offset = ?
): mixed
                

행 필드 이름 및 행 필드 값에 해당하는 값과 일치하는 속성이 있는 지정된 클래스의 인스턴스로 결과 집합에서 데이터의 다음 행을 검색합니다.


매개변수

stmt
sqlsrv_query() 또는 sqlsrv_execute()에 의해 생성된 명령문 리소스입니다.
className
인스턴스화할 클래스의 이름입니다. 클래스 이름을 지정하지 않으면 stdClass가 인스턴스화됩니다.
ctorParams
지정된 클래스의 생성자에 전달된 값입니다. 지정된 클래스의 생성자가 매개변수를 사용하는 경우 ctorParams 배열을 제공해야 합니다.
row
액세스할 행입니다. 이 매개변수는 지정된 명령문이 스크롤 가능한 커서로 준비된 경우에만 사용할 수 있습니다. 이 경우 이 매개변수는 다음 값 중 하나를 사용할 수 있습니다.
  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE
offset
행 매개변수가 SQLSRV_SCROLL_ABSOLUTE 또는 SQLSRV_SCROLL_RELATIVE로 설정된 경우 액세스할 행을 지정합니다. 결과 집합의 첫 번째 행에는 인덱스 0이 있습니다.

반환 값

성공하면 객체를 반환하고, 반환할 행이 더 이상 없으면 null을 반환하고, 오류가 발생하거나 지정된 클래스가 없으면 false를 반환합니다.


Examples

예제 #1 sqlsrv_fetch_object() 예제

다음 예제는 행을 stdClass 객체로 검색하는 방법을 보여줍니다.

                  
<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Retrieve each row as an object.
// Because no class is specified, each row will be retrieved as a stdClass object.
// Property names correspond to field names.
while( $obj = sqlsrv_fetch_object( $stmt)) {
      echo $obj->fName.", ".$obj->lName."<br />";
}
?>
                  
                

메모

클래스 이름이 선택적 $className 매개변수로 지정되고 클래스에 이름이 결과 집합 필드 이름과 일치하는 속성이 있는 경우 해당 결과 집합 값이 속성에 적용됩니다. 결과 집합 필드 이름이 클래스 속성과 일치하지 않으면 결과 집합 필드 이름을 가진 속성이 개체에 추가되고 결과 집합 값이 속성에 적용됩니다. $className 매개변수를 사용할 때 다음 규칙이 적용됩니다.

  • 필드 속성 이름 일치는 대소문자를 구분합니다.
  • 필드 속성 일치는 액세스 한정자와 관계없이 발생합니다.
  • 속성에 필드 값을 적용할 때 클래스 속성 데이터 형식은 무시됩니다.
  • 클래스가 존재하지 않으면 함수는 false를 반환하고 오류 컬렉션에 오류를 추가합니다.

$className 매개변수의 제공 여부에 관계없이 이름이 없는 필드가 반환되면 필드 값은 무시되고 오류 컬렉션에 경고가 추가됩니다. 동일한 이름의 여러 열이 있는 결과 집합을 사용할 때 sqlsrv_fetch_array() 또는 sqlsrv_fetch()sqlsrv_get_field()의 조합을 사용하는 것이 좋습니다.


기타