sqlsrv_num_fields
Recupera el número de campos de un conjunto de resultados activo. Esta función se puede llamar en cualquier instrucción preparada, con independencia de que sea anterior o posterior a la ejecución.
Sintaxis
sqlsrv_num_fields( resource $stmt)
Parámetros
$stmt: la instrucción en el que está activo el conjunto de resultados de destino.
Valor devuelto
Establece un valor entero que representa el número de campos del conjunto de resultados activo. Si se produce un error, se devuelve el valor booleano False .
Ejemplo
En el ejemplo siguiente se ejecuta una consulta para recuperar todos los campos de las primeras tres filas en la tabla HumanResources.Department de la base de datos AdventureWorks. La función sqlsrv_num_fields determina el número de campos del conjunto de resultados. Gracias a esto, los datos pueden mostrarse repitiéndose a través de los campos de cada fila devuelta.
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));
}
/* Define and execute the query. */
$tsql = "SELECT TOP (3) * FROM HumanResources.Department";
$stmt = sqlsrv_query($conn, $tsql);
if( $stmt === false)
{
echo "Error in executing query.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Retrieve the number of fields. */
$numFields = sqlsrv_num_fields( $stmt );
/* Iterate through each row of the result set. */
while( sqlsrv_fetch( $stmt ))
{
/* Iterate through the fields of each row. */
for($i = 0; $i < $numFields; $i++)
{
echo sqlsrv_get_field($stmt, $i,
SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR))." ";
}
echo "\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt );
sqlsrv_close( $conn );
?>