sqlsrv_get_field

Stáhnout ovladač PHP

Získá data ze specifikovaného pole aktuálního řádku. Terénní data musí být přístupná v pořadí. Například data z prvního pole nelze získat poté, co jsou data z druhého pole přístupná.

Syntax

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

Parametry

$stmt: Zdroj příkazu odpovídající vykonanému příkazu.

$fieldIndex: Index pole, které má být získáno. Indexy začínají na nule.

$getAsType [VOLITELNÉ]: SQLSRV konstanta (SQLSRV_PHPTYPE_*), která určuje typ dat v PHP pro vrácená data. Pro informace o podporovaných datových typech viz Konstanty (Microsoft Drivers for PHP for SQL Server). Pokud není zadán žádný typ návratu, vrátí se výchozí typ PHP. Pro informace o výchozích typech PHP viz Výchozí PHP datové typy. Pro informace o specifikaci datových typů PHP viz Jak specifikovat: Specifikovat PHP datové typy.

Návratová hodnota

Terénní data. Typ dat v PHP můžete zadat pomocí parametru $getAsType . Pokud není zadán žádný typ vrácených dat, vrátí se výchozí typ dat PHP. Pro informace o výchozích typech PHP viz Výchozí PHP datové typy. Pro informace o specifikaci datových typů PHP viz Jak specifikovat: Specifikovat PHP datové typy.

Remarks

Kombinace sqlsrv_fetch a sqlsrv_get_field umožňuje přístup k datům pouze dopředu.

Kombinace sqlsrv_fetch/sqlsrv_get_field načítá do paměti skriptů pouze jedno pole řádku výsledkové sady a umožňuje specifikaci typu návratu v PHP. (Pro informace o tom, jak specifikovat typ návratu v PHP, viz Jak specifikovat: Specifikovat PHP datové typy.) Tato kombinace funkcí také umožňuje získávat data jako tok. (Pro informace o získávání dat jako proudu viz Získávání dat jako proudu pomocí ovladače SQLSRV.)

Example

Následující příklad získává řádek dat, který obsahuje recenzi produktu a jméno recenzenta. Pro získání dat z výsledné množiny se používá sqlsrv_get_field . Příklad předpokládá, že SQL Server a databáze AdventureWorks jsou nainstalovány v místním počítači. Při spuštění příkladu z příkazového řádku se veškerý výstup zapíše do konzoly.

<?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);  
?>