Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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);
?>