다음을 통해 공유


sqlsrv_fetch_object

다음 데이터 행을 PHP 개체로 검색합니다.

구문

sqlsrv_fetch_object( resource $stmt [, string $className [, array $ctorParams[, row[, ]offset]]])

매개 변수

$stmt: 실행된 문에 해당하는 문 리소스입니다.

$className [옵션]: 인스턴스화할 클래스의 이름을 지정하는 문자열입니다. $className 매개 변수의 값이 지정된 경우 PHP stdClass의 인스턴스가 인스턴스화됩니다.

$ctorParams [옵션]: $className 매개 변수에 지정된 클래스의 생성자에 전달되는 값을 포함하는 배열입니다. 지정된 클래스의 생성자가 매개 변수 값을 허용하는 경우 sqlsrv_fetch_object를 호출할 때 $ctorParams 매개 변수를 사용해야 합니다.

row [옵션]: 1.1 버전에 추가되었습니다. 다음 값 중 하나로, 스크롤할 수 있는 커서를 사용하는 결과 집합에서 액세스할 행을 지정합니다. row를 지정할 경우 $className$ctorParams에 null을 지정해야 할 경우라도 $className$ctorParams를 명시적으로 지정해야 합니다.

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

이러한 값에 대한 자세한 내용은 커서 유형 지정 및 행 선택을 참조하십시오. SQL Server Driver for PHP 1.1 버전에는 스크롤할 수 있는 커서 지원이 추가되었습니다.

offset [옵션]: SQLSRV_SCROLL_ABSOLUTE 및 SQLSRV_SCROLL_RELATIVE와 함께 사용되어 검색할 행을 지정합니다. 결과 집합의 첫 번째 레코드는 0입니다.

반환 값

결과 집합 필드 이름에 해당하는 속성을 갖는 PHP 개체입니다. 속성 값은 해당하는 결과 집합 필드 값으로 채워집니다. 선택적 $className 매개 변수에 지정된 클래스가 없거나 지정된 문과 연관된 활성 결과 집합이 없는 경우 false가 반환됩니다. 검색할 행이 더 이상 없으면 null이 반환됩니다.

반환된 개체에서 값의 데이터 형식은 기본 PHP 데이터 형식입니다. 기본 PHP 데이터 형식에 대한 자세한 내용은 기본 PHP 데이터 형식을 참조하십시오.

주의

선택적 $className 매개 변수에 클래스 이름을 지정한 경우 이 클래스 유형의 개체가 인스턴스화됩니다. 클래스 속성 이름이 결과 집합 필드 이름과 일치하는 경우 해당하는 결과 집합 값이 해당 속성에 적용됩니다. 결과 집합 필드 이름이 클래스 속성과 일치하지 않는 경우 결과 집합 필드 이름을 사용하는 속성이 개체에 추가되며 결과 집합 값이 속성에 적용됩니다. $className 매개 변수를 사용하여 sqlsrv_fetch_object를 호출하는 방법은 방법: 데이터를 개체로 검색을 참조하십시오.

이름이 없는 필드가 반환되는 경우 sqlsrv_fetch_object는 필드 값을 무시하고 경고를 발생시킵니다. 예를 들어, 다음 Transact-SQL 문에서는 값을 데이터베이스 테이블에 삽입한 다음 서버에서 생성된 기본 키를 검색합니다.

INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);

SELECT SCOPE_IDENTITY()

이 쿼리에서 반환된 결과가 sqlsrv_fetch_object를 사용하여 검색되는 경우 SELECT SCOPE_IDENTITY()에서 반환된 값은 무시되며 경고가 발생합니다. 이를 방지하려면 반환되는 필드의 이름을 Transact-SQL 문에 지정하십시오. 다음은 Transact-SQL에 열 이름을 지정하는 한 가지 방법입니다.

SELECT SCOPE_IDENTITY() AS PictureID

다음 예제에서는 결과 집합의 각 행을 PHP 개체로 검색합니다. SQL Server와 AdventureWorks 데이터베이스가 로컬 컴퓨터에 설치되어 있다고 가정합니다. 명령줄에서 이 예제를 실행하면 모든 출력이 콘솔에 기록됩니다.

<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Set up and execute the query. */
$tsql = "SELECT FirstName, LastName
         FROM Person.Contact
         WHERE LastName='Alan'";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in query preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve each row as a PHP object and display the results.*/
while( $obj = sqlsrv_fetch_object( $stmt))
{
      echo $obj->LastName.", ".$obj->FirstName."\n";
}

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

참고 항목

개념

데이터 검색 함수 비교
설명서에 포함된 코드 예제 정보

관련 자료

데이터 검색
API 참조(SQL Server Driver for PHP)