sqlsrv_get_field

Descargar controlador PHP

Recupera los datos del campo especificado de la fila actual. Se debe acceder a los datos del campo en orden. Por ejemplo, no se puede acceder a los datos del primer campo una vez que se haya accedido al segundo.

Sintaxis

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

Parámetros

$stmt: un recurso de instrucción correspondiente a una instrucción ejecutada.

$fieldIndex: el índice del campo que se va a recuperar. Los índices comienzan en cero.

$getAsType [OPCIONAL]: constante SQLSRV (SQLSRV_PHPTYPE_*) que determina el tipo de datos PHP de los datos devueltos. Para obtener información sobre los tipos de datos compatibles, vea Constantes (Controladores de Microsoft para PHP para SQL Server). Si no se especifica ningún tipo de valor devuelto, se devolverá un tipo de datos PHP predeterminado. Para obtener información sobre los tipos de datos PHP predeterminados, consulte Default PHP Data Types. Para obtener información sobre cómo especificar los tipos de datos PHP, consulte How to: Specify PHP Data Types.

Valor devuelto

Los datos del campo. Puede especificar el tipo de datos PHP de los datos devueltos mediante el parámetro $getAsType . Si no se especifica ningún tipo de datos devuelto, se devolverá el tipo de datos PHP predeterminado. Para obtener información sobre los tipos de datos PHP predeterminados, consulte Default PHP Data Types. Para obtener información sobre cómo especificar los tipos de datos PHP, consulte How to: Specify PHP Data Types.

Observaciones

La combinación de sqlsrv_fetch y sqlsrv_get_field proporciona acceso de solo avance a los datos.

La combinación de sqlsrv_fetch/sqlsrv_get_field carga solamente un campo de una fila de conjunto de resultados en memoria de script y permite la especificación del tipo de valor devuelto PHP. (Para información sobre cómo especificar el tipo de valor devuelto PHP, consulte Procedimiento: Especificación de los tipos de datos PHP). Esta combinación de funciones también permite que los datos se recuperen como una secuencia (Para obtener información sobre cómo recuperar datos como una secuencia, vea Recuperación de datos como una secuencia con el controlador SQLSRV).

Ejemplo

En el ejemplo siguiente se recupera una fila de datos que contiene una reseña del producto y el nombre del autor. Para recuperar datos del conjunto de resultados, se usa sqlsrv_get_field. En el ejemplo se da por hecho que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Los resultados se agregan a la consola cuando se ejecuta el ejemplo en la línea 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);  
?>  

Consulte también

Referencia de API del controlador SQLSRV

Recuperación de datos

Sobre los ejemplos de código de la documentación