Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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);
?>