sqlsrv_errors

Ladda ned PHP-drivrutin

Returnerar utökad fel- och/eller varningsinformation om den senaste sqlsrv-operationen som utfördes.

sqlsrv_errors funktionen kan returnera fel- och/eller varningsinformation genom att anropa den med ett av parametervärdena som anges i avsnittet Parametrar nedan.

Som standard behandlas varningar som genereras vid ett anrop till en sqlsrv-funktion som fel; Om en varning uppstår vid ett anrop till en sqlsrv-funktion returnerar funktionen false. Varningar som motsvarar SQLSTATE-värdena 01000, 01001, 01003 och 01S02 behandlas dock aldrig som fel.

Följande kodrad stänger av det beteende som nämnts ovan; En varning som genereras av ett anrop till en sqlSRV-funktion orsakar inte att funktionen returnerar false:

sqlsrv_configure("WarningsReturnAsErrors", 0);  

Följande kodrad återställer standardbeteendet; Varningar (med undantag, nämnda ovan) behandlas som fel:

sqlsrv_configure("WarningsReturnAsErrors", 1);  

Oavsett inställning kan varningar endast hämtas genom att anropa sqlsrv_errors med antingen parametervärdet SQLSRV_ERR_ALL eller SQLSRV_ERR_WARNINGS (se avsnittet Parametrar nedan för detaljer).

Syntax

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

Parameters

$errorsAndOrWarnings[VALFRITT]: En fördefinierad konstant. Denna parameter kan ta ett av värdena som listas i följande tabell:

Value Beskrivning
SQLSRV_ERR_ALL Fel och varningar som genererades vid det senaste sqlsrv-funktionsanropet returneras.
SQLSRV_ERR_ERRORS Fel som genererades vid det senaste sqlsrv-funktionsanropet returneras.
SQLSRV_ERR_WARNINGS Varningar som genererades vid det senaste sqlsrv-funktionsanropet returneras.

Om inget parametervärde tillhandahålls returneras både fel och varningar genererade av det senaste sqlsrv-funktionsanropet .

Returvärde

En array av arrayer, eller null. Varje array i den returnerade arrayen innehåller tre nyckel-värde-par. Följande tabell listar varje nyckel och dess beskrivning:

Key Beskrivning
SQLSTATE För fel som härstammar från ODBC-drivrutinen returnerades SQLSTATE av ODBC. För information om SQLSTATE-värden för ODBC, se ODBC Error Codes.

För fel som härstammar från Microsoft Drivers för PHP för SQL Server, en SQLSTATE av IMSSP.

För varningar som kommer från Microsoft Drivers för PHP för SQL Server, en SQLSTATE av 01SSP.
code För fel som härstammar från SQL Server, är den inbyggda SQL Server-felkoden.

För fel som kommer från ODBC-drivrutinen returneras felkoden av ODBC.

För fel som härrör från Microsoft Drivers för PHP för SQL Server, Microsoft Drivers for PHP för SQL Server felkod. Mer information finns i Hantera fel och varningar.
message Beskrivning av felet.

Arrayvärdena kan också nås med numeriska tangenter 0, 1 och 2. Om inga fel eller varningar inträffar returneras null .

Example

Följande exempel visar fel som uppstår under en misslyckad satsexekvering. (Satsen misslyckas eftersom InvalidColumName inte är ett giltigt kolumnnamn i den angivna tabellen.) Exemplet antar att SQL Server och AdventureWorks-databasen är installerade på den lokala datorn. Alla utdata skrivs till konsolen när exemplet körs från kommandoraden.

<?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);  
?>