Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Recupera a próxima linha de dados como uma matriz numericamente indexada, matriz associativa ou ambas.
Sintaxe
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])
Parâmetros
$stmt: Um recurso de instrução correspondente a uma instrução executada.
$fetchType [OPCIONAL]: Uma constante predefinida. Este parâmetro pode assumir um dos valores listados na tabela a seguir:
| Valor | Descrição |
|---|---|
| SQLSRV_FETCH_NUMERIC | A próxima linha de dados é retornada como uma matriz numérica. |
| SQLSRV_FETCH_ASSOC | A próxima linha de dados é retornada como uma matriz associativa. As chaves de matriz são os nomes das colunas no conjunto de resultados. |
| SQLSRV_FETCH_BOTH | A próxima linha de dados é retornada como uma matriz numérica e uma matriz associativa. Este é o valor padrão. |
linha [OPCIONAL]: Adicionada na versão 1.1. Um dos seguintes valores, especificando a linha a ser acessada em um conjunto de resultados que usa um cursor rolável. (Quando a linha é especificada, fetchtype deve ser explicitamente especificado, mesmo que você especifique o valor padrão.)
- SQLSRV_SCROLL_NEXT
- SQLSRV_SCROLL_PRIOR
- SQLSRV_SCROLL_FIRST
- SQLSRV_SCROLL_LAST
- SQLSRV_SCROLL_ABSOLUTE
- SQLSRV_SCROLL_RELATIVE
Para obter mais informações sobre esses valores, consulte Especificando um tipo de cursor e Selecionando linhas. Suporte de cursor rolável foi adicionado na versão 1.1 dos drivers da Microsoft para PHP para SQL Server.
deslocamento [OPCIONAL]: Usado com SQLSRV_SCROLL_ABSOLUTE e SQLSRV_SCROLL_RELATIVE para especificar a linha a ser recuperada. O primeiro registro no conjunto de resultados é 0.
Valor de retorno
Se uma linha de dados for recuperada, uma matriz será retornada. Se não houver mais linhas para recuperar, null será retornado. Se ocorrer um erro, false será retornado.
Com base no valor do parâmetro $fetchType , a matriz retornada pode ser uma matriz numericamente indexada, uma matriz associativa ou ambas. Por padrão, uma matriz com chaves numéricas e associativas é retornada. O tipo de dados de um valor na matriz retornada será o tipo de dados PHP padrão. Para obter informações sobre tipos de dados PHP padrão, consulte Tipos de dados PHP padrão.
Observações
Se uma coluna sem nome for retornada, a chave associativa para o elemento de matriz será uma cadeia de caracteres vazia (""). Por exemplo, considere esta instrução Transact-SQL que insere um valor em uma tabela de banco de dados e recupera a chave primária gerada pelo servidor:
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
SELECT SCOPE_IDENTITY()
Se o conjunto de resultados retornado pela SELECT SCOPE_IDENTITY() parte desta instrução for recuperado como uma matriz associativa, a chave para o valor retornado será uma cadeia de caracteres vazia ("") porque a coluna retornada não tem nome. Para evitar isso, você pode recuperar o resultado como uma matriz numérica ou pode especificar um nome para a coluna retornada na instrução Transact-SQL. A instrução a seguir é uma maneira de especificar um nome de coluna no Transact-SQL:
SELECT SCOPE_IDENTITY() AS PictureID
Se um conjunto de resultados contiver várias colunas sem nomes, o valor da última coluna sem nome será atribuído à chave string vazia ("").
Exemplo de matriz associativa
O exemplo a seguir recupera cada linha de um conjunto de resultados como uma matriz associativa. O exemplo pressupõe que o SQL Server e o banco de dados AdventureWorks estejam instalados no computador local. Toda a saída é gravada no console quando o exemplo é executado a partir da linha de comando.
<?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);
?>
Exemplo de matriz indexada
O exemplo a seguir recupera cada linha de um conjunto de resultados como uma matriz numericamente indexada.
O exemplo recupera informações do produto da tabela Purchasing.PurchaseOrderDetail do banco de dados AdventureWorks para produtos que têm uma data especificada e uma quantidade estocada (StockQty) menor que um valor especificado.
O exemplo pressupõe que o SQL Server e o banco de dados AdventureWorks estejam instalados no computador local. Toda a saída é gravada no console quando o exemplo é executado a partir da linha de comando.
<?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);
?>
A função sqlsrv_fetch_array sempre retorna dados de acordo com os tipos de dados PHP padrão. Para obter informações sobre como especificar o tipo de dados PHP, consulte Como especificar tipos de dados PHP.
Se um campo sem nome for recuperado, a chave associativa para o elemento de matriz será uma cadeia de caracteres vazia (""). Para obter mais informações, consulte sqlsrv_fetch_array.
Ver também
Referência da API do driver SQLSRV
Sobre Exemplos de Código na Documentação
Guia de programação para os drivers da Microsoft para PHP para SQL Server