sqlsrv_get_field

Descarregar o driver PHP

Recupera dados do campo especificado da linha atual. Os dados de campo devem ser acedidos por ordem. Por exemplo, os dados do primeiro campo não podem ser acedidos depois de os dados do segundo campo terem sido acedidos.

Syntax

sqlsrv_get_field( resource $stmt, int $fieldIndex [, int $getAsType])  

Parâmetros

$stmt: Um recurso de instrução correspondente a uma instrução executada.

$fieldIndex: O índice do campo a consultar. Os índices começam a zero.

$getAsType [OPCIONAL]: uma constante SQL (SQLSRV_PHPTYPE_*) que determina o tipo de dado PHP para os dados devolvidos. Para informações sobre tipos de dados suportados, consulte Constantes (Microsoft Drivers for PHP for SQL Server). Se não for especificado o tipo de retorno, será devolvido um tipo PHP predefinido. Para informações sobre os tipos PHP predefinidos, consulte Tipos de Dados PHP Padrão. Para informações sobre a especificação dos tipos de dados PHP, veja Como: Especificar Tipos de Dados PHP.

Valor de retorno

Os dados de campo. Pode especificar o tipo de dado PHP dos dados devolvidos usando o parâmetro $getAsType . Se não for especificado o tipo de dado de retorno, o tipo de dado PHP predefinido será devolvido. Para informações sobre os tipos PHP predefinidos, consulte Tipos de Dados PHP Padrão. Para informações sobre a especificação dos tipos de dados PHP, veja Como: Especificar Tipos de Dados PHP.

Observações

A combinação de sqlsrv_fetch e sqlsrv_get_field proporciona acesso apenas direto aos dados.

A combinação de sqlsrv_fetch/sqlsrv_get_field carrega apenas um campo de uma linha de conjunto de resultados na memória de script e permite a especificação do tipo de retorno PHP. (Para informações sobre como especificar o tipo de retorno PHP, veja Como: Especificar Tipos de Dados PHP.) Esta combinação de funções também permite recuperar dados como fluxo. (Para informações sobre a recuperação de dados como fluxo, veja Recuperar Dados como Fluxo Usando o Driver SQLSRV.)

Example

O exemplo seguinte recupera uma linha de dados que contém uma avaliação de produto e o nome do revisor. Para recuperar dados do conjunto de resultados, utiliza-se sqlsrv_get_field . O exemplo assume que o SQL Server e a base de dados AdventureWorks estão instalados no computador local. Toda a saída é escrita para a consola quando o exemplo é executado a partir da linha de comandos.

<?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. Note that both ReviewerName and  
Comments are of the SQL Server nvarchar type. */  
$tsql = "SELECT ReviewerName, Comments   
         FROM Production.ProductReview  
         WHERE ProductReviewID=1";  
$stmt = sqlsrv_query( $conn, $tsql);  
if( $stmt === false )  
{  
     echo "Error in statement preparation/execution.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Make the first row of the result set available for reading. */  
if( sqlsrv_fetch( $stmt ) === false )  
{  
     echo "Error in retrieving row.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Note: Fields must be accessed in order.  
Get the first field of the row. Note that no return type is  
specified. Data will be returned as a string, the default for  
a field of type nvarchar.*/  
$name = sqlsrv_get_field( $stmt, 0);  
echo "$name: ";  
  
/*Get the second field of the row as a stream.  
Because the default return type for a nvarchar field is a  
string, the return type must be specified as a stream. */  
$stream = sqlsrv_get_field( $stmt, 1,   
                            SQLSRV_PHPTYPE_STREAM( SQLSRV_ENC_CHAR));  
while( !feof( $stream))  
{   
    $str = fread( $stream, 10000);  
    echo $str;  
}  
  
/* Free the statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
?>