sqlsrv_query
Prépare et exécute une instruction.
Remarque : |
---|
Cette fonction s'utilise pour exécuter les requêtes à usage unique. Pour plus d'informations, consultez Procédure : exécuter une requête unique. |
Syntaxe
sqlsrv_query( resource $conn, string $tsql [, array $params [, array $options]])
Paramètres
$conn : ressource de connexion associée à l'instruction préparée.
$tsql : expression Transact-SQL correspondant à l'instruction préparée.
$params [OPTIONNEL] : array de valeurs correspondant aux paramètres spécifiés dans une requête paramétrée. Chaque élément du tableau peut être de l'un des types suivants :
Une valeur littérale.
Une variable PHP.
Un array avec la structure suivante :
array($value [, $direction [, $phpType [, $sqlType]]])
Chaque élément de tableau est décrit dans le tableau ci-dessous :
Élément Description $value
Valeur littérale, variable PHP ou variable PHP par référence.
$direction[OPTIONNEL]
L'une des constantes SQLSRV_PARAM_* suivantes utilisées pour spécifier la direction des paramètres : SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. SQLSRV_PARAM_IN est la valeur par défaut.
Pour plus d'informations sur les constantes PHP, consultez Constantes SQLSRV.
$phpType[OPTIONNEL]
Une constante SQLSRV_PHPTYPE_* qui spécifie le type de données PHP de la valeur retournée.
$sqlType[OPTIONNEL]
Une constante SQLSRV_SQLTYPE_* qui spécifie le type de données SQL Server de la valeur d'entrée.
$options [OPTIONNEL] : tableau associatif qui définit les propriétés de la requête. Les clés prises en charge sont décrites ci-après :
Clé | Valeurs prises en charge | Description |
---|---|---|
QueryTimeout |
Valeur entière positive. |
Définit le délai de requête en secondes. Par défaut, le pilote attend indéfiniment les résultats. |
SendStreamParamsAtExec |
true ou false true est la valeur par défaut. |
Configure le pilote pour envoyer toutes les données de flux au moment de l'exécution (true) ou pour les envoyer par segments (false). true est la valeur par défaut. Pour plus d'informations, consultez sqlsrv_send_stream_data. |
Défilement |
SQLSRV_CURSOR_FORWARD SQLSRV_CURSOR_STATIC SQLSRV_CURSOR_DYNAMIC SQLSRV_CURSOR_KEYSET |
Cette clé est une nouveauté de la version 1.1 du Pilote SQL Server pour PHP. Pour plus d'informations sur ces valeurs, consultez Spécification d'un type de curseur et sélection de lignes. |
Valeur de retour
Ressource d'instruction. Si la ressource d'instruction n'a pas pu être créée et/ou exécutée, la valeur false est retournée.
Exemple
L'exemple suivant met à jour un champ dans la table Sales.SalesOrderDetail de la base de données AdventureWorks. L'exemple suppose que SQL Server et la base de données AdventureWorks sont installés sur l'ordinateur local. Toutes les données de sortie sont écrites dans la console lorsque 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));
}
/* Set up the parameterized query. */
$tsql = "UPDATE Sales.SalesOrderDetail
SET OrderQty = ( ?)
WHERE SalesOrderDetailID = ( ?)";
/* Assign literal parameter values. */
$params = array( 5, 10);
/* Execute the query. */
if( sqlsrv_query( $conn, $tsql, $params))
{
echo "Statement executed.\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Free connection resources. */
sqlsrv_close( $conn);
?>
Voir aussi
Tâches
Procédure : exécuter des requêtes paramétrées
Procédure : envoyer des données sous forme de flux
Concepts
À propos des exemples de code dans la documentation
Autres ressources
Référence de l'API (Pilote SQL Server pour PHP)
Considérations relatives à la conception
Utilisation des paramètres directionnels