Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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);
?>