sqlsrv_fetch_array
데이터의 다음 행을 숫자로 인덱싱된 배열, 결합 배열 또는 둘 다로 검색합니다.
구문
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])
매개 변수
$stmt: 실행된 문에 해당하는 문 리소스입니다.
$fetchType [OPTIONAL]: 미리 정의된 상수입니다. 이 매개 변수는 다음 표에 나열된 값 중 하나를 사용할 수 있습니다.
값 | 설명 |
---|---|
SQLSRV_FETCH_NUMERIC | 다음 데이터 행은 숫자 배열로 반환됩니다. |
SQLSRV_FETCH_ASSOC | 데이터의 다음 행이 결합형 배열로 반환됩니다. 배열 키는 결과 집합의 열 이름입니다. |
SQLSRV_FETCH_BOTH | 다음 데이터 행은 숫자 배열과 결합형 배열로 반환됩니다. 기본값입니다. |
행 [선택 사항]: 버전 1.1에 추가되었습니다. 다음 값 중 하나로 스크롤 가능 커서를 사용하는 결과 집합에서 액세스할 행을 지정합니다. (행을 지정하는 경우 기본값을 지정하더라도 fetchtype을 명시적으로 지정해야 합니다.)
- SQLSRV_SCROLL_NEXT
- SQLSRV_SCROLL_PRIOR
- SQLSRV_SCROLL_FIRST
- SQLSRV_SCROLL_LAST
- SQLSRV_SCROLL_ABSOLUTE
- SQLSRV_SCROLL_RELATIVE
이러한 값에 대한 자세한 내용은 커서 유형 지정 및 행 선택을 참조하세요. 스크롤 가능한 커서 지원은 MICROSOFT Drivers for PHP for SQL Server 버전 1.1에 추가되었습니다.
offset [선택 사항]: 검색할 행을 지정하는 데 SQLSRV_SCROLL_ABSOLUTE 및 SQLSRV_SCROLL_RELATIVE와 함께 사용됩니다. 결과 집합의 첫 번째 레코드는 0입니다.
Return Value
데이터 행을 검색하면 배열이 반환됩니다. 검색 할 행이 더 이상 없으면 null 이 반환됩니다. 오류가 발생하면 false 가 반환됩니다.
$fetchType 매개 변수의 값에 따라 반환된 배열은 숫자로 인덱싱된 배열, 결합형 배열 또는 둘 다일 수 있습니다. 기본적으로 숫자 키와 결합 키가 모두 있는 배열 이 반환됩니다. 반환된 배열에 있는 값의 데이터 형식은 기본 PHP 데이터 형식입니다. 기본 PHP 데이터 형식에 대한 자세한 내용은 기본 PHP 데이터 형식을 참조하세요.
설명
이름이 없는 열이 반환되면 배열 요소에 대한 결합형 키는 빈 문자열("")입니다. 예를 들어 데이터베이스 테이블에 값을 삽입하고 서버에서 생성된 기본 키를 검색하는 이 Transact-SQL 문을 고려합니다.
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
SELECT SCOPE_IDENTITY()
이 문의 부분에서 반환 SELECT SCOPE_IDENTITY()
된 결과 집합이 연관 배열로 검색되는 경우 반환된 열에 이름이 없기 때문에 반환된 값의 키는 빈 문자열("")이 됩니다. 이를 방지하려면 결과를 숫자 배열로 검색하거나 Transact-SQL 문에서 반환된 열의 이름을 지정할 수 있습니다. 다음 문은 Transact-SQL에서 열 이름을 지정하는 한 가지 방법입니다.
SELECT SCOPE_IDENTITY() AS PictureID
결과 집합에 이름이 없는 여러 열이 포함된 경우 이름 없는 마지막 열의 값이 빈 문자열("") 키에 할당됩니다.
결합형 배열 예제
다음 예제에서는 결과 집합의 각 행을 결합형 배열로 검색합니다. 이 예제에서는 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 an associative array and display the results.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
echo $row['LastName'].", ".$row['FirstName']."\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
인덱싱된 배열 예제
다음 예제에서는 결과 집합의 각 행을 숫자 인덱싱된 배열로 검색합니다.
이 예제에서는 지정된 날짜와 재고 수량(StockQty)이 지정된 값보다 작은 제품에 대한 AdventureWorks 데이터베이스의 Purchase.PurchaseOrderDetail 테이블에서 제품 정보를 검색합니다.
이 예시에서는 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));
}
/* Define the query. */
$tsql = "SELECT ProductID,
UnitPrice,
StockedQty
FROM Purchasing.PurchaseOrderDetail
WHERE StockedQty < 3
AND DueDate='2002-01-29'";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each
iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "ProdID: ".$row[0]."\n";
echo "UnitPrice: ".$row[1]."\n";
echo "StockedQty: ".$row[2]."\n";
echo "-----------------\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
sqlsrv_fetch_array 함수는 항상 기본 PHP 데이터 형식에 따라 데이터를 반환합니다. PHP 데이터 형식을 지정하는 방법에 대한 자세한 내용은 방법: PHP 데이터 형식 지정을 참조 하세요.
이름이 없는 필드를 검색하면 배열 요소의 결합 키가 빈 문자열("")이 됩니다. 자세한 내용은 sqlsrv_fetch_array 참조하세요.