Partager via


sqlsrv_send_stream_data

Télécharger le pilote PHP

Envoie des données à partir de flux de paramètres vers le serveur. Jusqu’à huit kilo-octets (8 Ko) de données sont envoyés lors de chaque appel de sqlsrv_send_stream_data.

Notes

Par défaut, toutes les données de flux sont envoyées au serveur quand une requête est exécutée. Si vous ne changez pas ce comportement par défaut, vous n’avez pas à utiliser sqlsrv_send_stream_data pour envoyer des données de flux au serveur. Pour plus d’informations sur la modification du comportement par défaut, consultez la section Paramètres de sqlsrv_query ou sqlsrv_prepare.

Syntaxe

  
sqlsrv_send_stream_data( resource $stmt)  

Paramètres

$stmt : ressource d’instruction correspondant à une instruction exécutée.

Valeur de retour

Valeur booléenne : true s’il y a davantage de données à envoyer. Dans le cas contraire, la valeur est false.

Exemple

L’exemple suivant ouvre une évaluation de produit sous forme de flux et l’envoie au serveur. Le comportement par défaut qui consiste à envoyer toutes les données de flux au moment de l’exécution est désactivé. L’exemple part du principe que SQL Server et la base de données AdventureWorks sont installés sur l’ordinateur local. Toute la sortie est écrite dans la console quand l’exemple est exécuté à partir de la ligne de commande.

<?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 the query. */  
$tsql = "UPDATE Production.ProductReview   
         SET Comments = (?)   
         WHERE ProductReviewID = 3";  
  
/* Open parameter data as a stream and put it in the $params array. */
$data = 'Insert any lengthy comment here.';
$comment = fopen('data:text/plain,'.urlencode($data), 'r');
$params = array(&$comment);
  
/* Prepare the statement. Use the $options array to turn off the  
default behavior, which is to send all stream data at the time of query  
execution. */  
$options = array("SendStreamParamsAtExec"=>0);  
$stmt = sqlsrv_prepare($conn, $tsql, $params, $options);
  
/* Execute the statement. */  
sqlsrv_execute( $stmt);  
  
/* Send up to 8K of parameter data to the server with each call to  
sqlsrv_send_stream_data. Count the calls. */  
$i = 1;  
while (sqlsrv_send_stream_data($stmt)) {
      echo "$i call(s) made.\n";  
      $i++;  
}  
  
/* Free statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
?>  

Voir aussi

Informations de référence sur l’API du pilote SQLSRV

Mise à jour des données (pilotes Microsoft pour PHP pour SQL Server)

À propos des exemples de code dans la documentation