sqlsrv_errors

Retourne des informations d'erreur et/ou d'avertissement étendues sur la dernière opération sqlsrv effectuée.

La fonction sqlsrv_errors peut retourner des informations d'erreur et/ou d'avertissement en étant appelée avec l'une des valeurs de paramètre spécifiées dans la section Paramètres ci-dessous.

Par défaut, les avertissements générés lors d'un appel à une fonction sqlsrv sont traités comme des erreurs ; si un avertissement se produit lors d'un appel à une fonction sqlsrv, la fonction retourne la valeur false. Toutefois, les avertissements qui correspondent aux valeurs SQLSTATE 01000, 01001, 01003 et 01S02 ne sont jamais traités comme des erreurs.

La ligne de code suivante désactive le comportement mentionné ci-dessus ; un avertissement généré par un appel à une fonction sqlsrv n'amène pas la fonction à retourner la valeur false :

sqlsrv_configure("WarningsReturnAsErrors", 0);

La ligne de code suivante rétablit le comportement par défaut ; les avertissements (sauf pour les exceptions décrites ci-dessus) sont traités comme des erreurs :

sqlsrv_configure("WarningsReturnAsErrors", 1);

Quel que soit le paramètre, les avertissements ne peuvent être récupérés que par l'appel de sqlsrv_errors avec la valeur de paramètre SQLSRV_ERR_ALL ou SQLSRV_ERR_WARNINGS (pour plus de détails, consultez la section Paramètres ci-dessous).

Syntaxe

sqlsrv_errors( [int $errorsAndOrWarnings] )

Paramètres

$errorsAndOrWarnings[OPTIONNEL] : constante prédéfinie. Ce paramètre peut prendre l'une des valeurs répertoriées dans le tableau suivant :

Valeur Description

SQLSRV_ERR_ALL

Les erreurs et les avertissements générés lors du dernier appel de la fonction sqlsrv sont retournés.

SQLSRV_ERR_ERRORS

Les erreurs générées lors du dernier appel de la fonction sqlsrv sont retournées.

SQLSRV_ERR_WARNINGS

Les avertissements générés lors du dernier appel de la fonction sqlsrv sont retournés.

Si aucune valeur de paramètre n'est fournie, les erreurs et les avertissements générés par le dernier appel de la fonction sqlsrv sont retournés.

Valeur de retour

array de tableaux ou valeur null. Chaque array dans l'array retourné contient trois paires clé-valeur. Le tableau suivant répertorie chaque clé et sa description :

Clé Description

SQLSTATE

Pour les erreurs qui proviennent du pilote ODBC, valeur SQLSTATE retournée par ODBC. Pour plus d'informations sur les valeurs SQLSTATE pour ODBC, consultez ODBC Error Codes (en anglais).

Pour les erreurs qui proviennent du Pilote SQL Server pour PHP, valeur SQLSTATE de IMSSP.

Pour les avertissements qui proviennent du Pilote SQL Server pour PHP, valeur SQLSTATE de 01SSP.

code

Pour les erreurs qui proviennent de SQL Server, code d'erreur SQL Server natif.

Pour les erreurs qui proviennent du pilote ODBC, code d'erreur retourné par ODBC.

Pour les erreurs qui proviennent du Pilote SQL Server pour PHP, code d'erreur Pilote SQL Server pour PHP.

message

Description de l'erreur.

Les valeurs du tableau sont également accessibles à l'aide des clés numériques 0, 1 et 2. En l'absence d'erreurs ou d'avertissements, la valeur null est retournée.

Exemple

L'exemple suivant affiche les erreurs qui se produisent lors de l'échec de l'exécution d'une instruction. (L'instruction échoue, car InvalidColumName n'est pas un nom de colonne valide dans la table spécifiée.) 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 a query to select an invalid column name. */
$tsql = "SELECT InvalidColumnName FROM Sales.SalesOrderDetail";

/* Attempt execution. */
/* Execution will fail because of the invalid column name. */
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
      if( ($errors = sqlsrv_errors() ) != null)
      {
         foreach( $errors as $error)
         {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."\n";
            echo "code: ".$error[ 'code']."\n";
            echo "message: ".$error[ 'message']."\n";
         }
      }
}

/* Free connection resources */
sqlsrv_close( $conn);
?>

Voir aussi

Concepts

À propos des exemples de code dans la documentation

Autres ressources

Référence de l'API (Pilote SQL Server pour PHP)