Delen via


Procedure: Tekengegevens ophalen als een stream met behulp van het SQLSRV-stuurprogramma

PHP-stuurprogramma downloaden

Het ophalen van gegevens als een stream is alleen beschikbaar in het SQLSRV-stuurprogramma van de Microsoft-stuurprogramma's voor PHP voor SQL Server en is niet beschikbaar in het PDO_SQLSRV stuurprogramma.

Het SQLSRV-stuurprogramma maakt gebruik van PHP-streams voor het ophalen van grote hoeveelheden gegevens van de server. In het voorbeeld in dit onderwerp ziet u hoe u tekengegevens als een stroom ophaalt.

Example

In het volgende voorbeeld wordt een rij opgehaald uit de tabel Production.ProductReview van de AdventureWorks-database. Het veld Opmerkingen van de geretourneerde rij wordt opgehaald als een stroom en weergegeven met behulp van de PHP-fpassthru-functie .

Het ophalen van gegevens als een stroom wordt bereikt met behulp van sqlsrv_fetch en sqlsrv_get_field met het retourtype dat is opgegeven als een tekenstroom. Het retourtype wordt opgegeven met behulp van de constante SQLSRV_PHPTYPE_STREAM. Zie Constanten (Microsoft-stuurprogramma's voor PHP voor SQL Server) voor informatie over sqlsrv-constanten.

In het voorbeeld wordt ervan uitgegaan dat SQL Server en de AdventureWorks-database op de lokale computer zijn geïnstalleerd. Alle uitvoer wordt naar de console geschreven wanneer het voorbeeld via de opdrachtregel wordt uitgevoerd.

<?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 the Transact-SQL query. */  
$tsql = "SELECT ReviewerName,   
               CONVERT(varchar(32), ReviewDate, 107) AS [ReviewDate],  
               Rating,   
               Comments   
         FROM Production.ProductReview   
         WHERE ProductReviewID = ? ";  
  
/* Set the parameter value. */  
$productReviewID = 1;  
$params = array( $productReviewID);  
  
/* Execute the query. */  
$stmt = sqlsrv_query($conn, $tsql, $params);  
if( $stmt === false )  
{  
     echo "Error in statement execution.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Retrieve and display the data. The first three fields are retrieved  
as strings and the fourth as a stream with character encoding. */  
if(sqlsrv_fetch( $stmt ) === false )  
{  
     echo "Error in retrieving row.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
echo "Name: ".sqlsrv_get_field( $stmt, 0 )."\n";  
echo "Date: ".sqlsrv_get_field( $stmt, 1 )."\n";  
echo "Rating: ".sqlsrv_get_field( $stmt, 2 )."\n";  
echo "Comments: ";  
$comments = sqlsrv_get_field( $stmt, 3,   
                             SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR));  
fpassthru($comments);  
  
/* Free the statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
?>  

Omdat er geen PHP-retourtype is opgegeven voor de eerste drie velden, wordt elk veld geretourneerd volgens het standaard PHP-type. Zie Standaard-PHP-gegevenstypen voor informatie over standaard PHP-gegevenstypen. Zie Hoe u PHP-gegevenstypen opgeeft voor informatie over het opgeven van PHP-retourtypen.

Zie ook

Gegevens ophalen

Gegevens ophalen als stream met behulp van het SQLSRV-stuurprogramma

Informatie over codevoorbeelden in de documentatie