sqlsrv_errors

PHP-illesztőprogram letöltése

Kiterjesztett hiba- és/vagy figyelmeztetési információkat ad az utolsó sqlsrv műveletről.

A sqlsrv_errors függvény hiba- és/vagy figyelmeztetési információkat visszaadhat azáltal, hogy az alábbi Paraméterek szakaszban megadott paraméterértékek egyikével hívja meg.

Alapértelmezés szerint a sqlsrv függvényhez híváskor generált figyelmeztetéseket hibáként kezelik; Ha figyelmeztetés történik egy SQLSRV függvény hívásánál, a függvény hamisat ad. Azonban a 01000, 01001, 01003 és 01S02 SQLSTATE értékekhez tartozó figyelmeztetések soha nem minősülnek hibának.

A következő kódsor kikapcsolja a fent említett viselkedést; Egy SQLSRV függvény hívásával generált figyelmeztetés nem okozza a függvény hamisa visszajelzését:

sqlsrv_configure("WarningsReturnAsErrors", 0);  

A következő kódsor visszaállítja az alapértelmezett viselkedést; A figyelmeztetések (kivételektől eltekintve, amelyeket fentebb említettek) hibáként kezelnek:

sqlsrv_configure("WarningsReturnAsErrors", 1);  

A beállítástól függetlenül a figyelmeztetések csak úgy lehet visszanyerni, ha sqlsrv_errors-t hívjuk a SQLSRV_ERR_ALL vagy SQLSRV_ERR_WARNINGS paraméterértékkel (részletekért lásd az alábbi Paraméterek szakaszt).

Syntax

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

Paraméterek

$errorsAndOrWarnings[OPTIONAL]: Egy előre definiált állandó. Ez a paraméter az alábbi táblázatban felsorolt értékek egyikét veheti:

Value Description
SQLSRV_ERR_ALL A rendszer az sqlsrv függvény legutóbbi hívása során generált hibákat és figyelmeztetéseket adja vissza.
SQLSRV_ERR_ERRORS A rendszer az sqlsrv függvény legutóbbi hívása során generált hibákat adja vissza.
SQLSRV_ERR_WARNINGS A rendszer az sqlsrv függvény legutóbbi hívása során generált figyelmeztetéseket adja vissza.

Ha nem adnak meg paraméterértéket, mind a hibákat, mind a figyelmeztetéseket kapják vissza, amelyeket az utolsó sqlsrv függvényhívás generált.

Visszaadott érték

Egy tömbtömb , vagy null. A visszaadott tömbben minden tömb három kulcs-érték párt tartalmaz. Az alábbi táblázat felsorolja az egyes kulcsokat és leírását:

Kulcs Description
SQLSTATE Az ODBC illeszőrből eredő hibák esetén az ODBC által visszaadja az SQLSTATE-et. Az ODBC SQLSTATE értékeiről információért lásd az ODBC hibakódokat.

Olyan hibáknál, amelyek a Microsoft Drivers for PHP for SQL Server-ből származnak, az IMSSP SQLSTATE-e.

Figyelmeztetésekhez, amelyek a Microsoft PHP for PHP for SQL Server-ből származnak, egy 01SSP SQLSTATE-ből.
kód Az SQL Server-ből eredő hibák esetén az SQL Server natív hibakódja.

Az ODBC illesztőprogramból eredő hibák esetén az ODBC által visszaadott hibakód.

Olyan hibáknál, amelyek a Microsoft Drivers for PHP for SQL Server hibakódból származnak, a Microsoft Drivers for PHP for SQL Server hibakódból. További információ: Hibák és figyelmeztetések kezelése.
üzenet A hiba leírása.

A tömbértékek 0, 1 és 2 számkulcsokkal is elérhetők. Ha nem fordul elő hiba vagy figyelmeztetés, null értéket adnak vissza.

Example

Az alábbi példa a hibákat mutatja be, amelyek egy sikertelen utasításvégrehajtás során jelentkeznek. (Az utasítás azért bukik, mert az InvalidColumName nem érvényes oszlopnév a megadott táblázatban.) A példa feltételezi, hogy az SQL Server és az AdventureWorks adatbázis a helyi számítógépen van telepítve. A rendszer minden kimenetet a konzolra ír, amikor a példa a parancssorból fut.

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