sqlsrv_query

Prépare et exécute une instruction.

Cc296184.note(fr-fr,SQL.90).gifRemarque :
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