sqlsrv_errors

Pobieranie sterownika PHP

Zwraca rozszerzone informacje o błędzie i/lub ostrzeżeniu dotyczące ostatniej wykonanej operacji sqlsrv .

Funkcja sqlsrv_errors może zwracać informacje o błędzie i/lub ostrzeżeniu, wywołując ją za pomocą jednej z wartości parametrów określonych w sekcji Parametry poniżej.

Domyślnie ostrzeżenia generowane przy wywołaniu dowolnej funkcji sqlsrv są traktowane jako błędy; Jeśli pojawi się ostrzeżenie przy wywołaniu funkcji sqlsrv , funkcja zwraca false. Jednak ostrzeżenia odpowiadające wartościom SQLSTATE 01000, 01001, 01003 i 01S02 nigdy nie są traktowane jako błędy.

Następujący wiersz kodu wyłącza wspomniane powyżej zachowanie; Ostrzeżenie generowane przez wywołanie funkcji sqlsrv nie powoduje, że funkcja zwraca false:

sqlsrv_configure("WarningsReturnAsErrors", 0);  

Następująca linijka kodu przywraca domyślne zachowanie; Ostrzeżenia (z wyjątkami, wymienionymi powyżej) są traktowane jako błędy:

sqlsrv_configure("WarningsReturnAsErrors", 1);  

Niezależnie od ustawienia, ostrzeżenia można pobrać tylko przez wywołanie sqlsrv_errors z wartością parametru SQLSRV_ERR_ALL lub SQLSRV_ERR_WARNINGS (szczegóły w sekcji Parametry poniżej).

Syntax

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

Parametry

$errorsAndOrWarnings[OPCJONALNIE]: Zdefiniowana stała. Ten parametr może przyjmować jedną z wartości wymienionych w poniższej tabeli:

Wartość Description
SQLSRV_ERR_ALL Zwracane są błędy i ostrzeżenia wygenerowane podczas ostatniego wywołania funkcji sqlsrv .
SQLSRV_ERR_ERRORS Zwracane są błędy wygenerowane podczas ostatniego wywołania funkcji sqlsrv .
SQLSRV_ERR_WARNINGS Zwracane są ostrzeżenia wygenerowane podczas ostatniego wywołania funkcji sqlsrv .

Jeśli nie podano wartości parametru, zwracane są zarówno błędy, jak i ostrzeżenia generowane przez ostatnie wywołanie funkcji sqlsrv .

Wartość zwracana

Tablica tablic, czyli null. Każda tablica w zwróconej tablicy zawiera trzy pary klucz-wartość. Poniższa tabela przedstawia każdy klucz oraz jego opis:

Key Description
SQLSTATE Dla błędów pochodzących ze sterownika ODBC, SQLSTATE zwracany przez ODBC. Aby uzyskać informacje o wartościach SQLSTATE dla ODBC, zobacz Kody błędów ODBC.

Dla błędów pochodzących z Microsoft Drivers for PHP for SQL Server, SQLSTATE IMSSP.

Dla ostrzeżeń pochodzących z sterowników Microsoft dla PHP for SQL Server, SQLSTATE 01SSP.
kod Dla błędów pochodzących z SQL Server, natywnego kodu błędu SQL Server.

Dla błędów pochodzących ze sterownika ODBC, kod błędu zwracany przez ODBC.

Dla błędów pochodzących z kodu błędu Microsoft Drivers for PHP for SQL Server, Microsoft Drivers for PHP for SQL Server. Aby uzyskać więcej informacji, zobacz Obsługa błędów i ostrzeżeń.
komunikat Opis błędu.

Wartości tablicy można również uzyskać za pomocą kluczy numerycznych 0, 1 i 2. Jeśli nie wystąpią błędy ani ostrzeżenia, zwracane jest potwierdzenie null .

Example

Poniższy przykład pokazuje błędy występujące podczas nieudanego wykonania polecenia. (Instrukcja nie działa, ponieważ InvalidColumName nie jest poprawną nazwą kolumny w podanej tabeli.) Przykład zakłada, że SQL Server i baza danych AdventureWorks są zainstalowane na komputerze lokalnym. Wszystkie dane wyjściowe są zapisywane w konsoli, gdy przykład jest uruchamiany z wiersza polecenia.

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