sqlsrv_errors
Restituisce informazioni complete sull'errore e/o sull'avviso relativo all'ultima operazione sqlsrv eseguita.
La funzione sqlsrv_errors può restituire informazioni su errori e/o avvisi quando viene chiamata con uno dei valori di parametro specificati nella sezione Parametri che segue.
Per impostazione predefinita, gli avvisi generati in una chiamata a qualsiasi funzione sqlsrv vengono considerati come errori; se viene generato un avviso in una chiamata a una funzione sqlsrv , la funzione restituisce false. Tuttavia, gli avvisi che corrispondono ai valori SQLSTATE 01000, 01001, 01003 e 01S02 non vengono mai considerati come errori.
La riga di codice seguente consente di disattivare il comportamento descritto sopra. Un avviso generato da una chiamata a una funzione sqlsrv non fa in modo che la funzione restituisca false:
sqlsrv_configure("WarningsReturnAsErrors", 0);
La riga di codice seguente ripristina il comportamento predefinito; gli avvisi, con le eccezioni descritte sopra, vengono considerati come errori:
sqlsrv_configure("WarningsReturnAsErrors", 1);
Indipendentemente dall'impostazione, gli avvisi possono essere recuperati solo tramite una chiamata a sqlsrv_errors con il valore di parametro SQLSRV_ERR_ALL o SQLSRV_ERR_WARNINGS. Per informazioni dettagliate, vedere la sezione Parametri che segue.
Sintassi
sqlsrv_errors( [int $errorsAndOrWarnings] )
Parametri
$errorsAndOrWarnings [facoltativo]: costante predefinita. Questo parametro può assumere uno dei valori elencati nella tabella seguente:
valore | Descrizione |
---|---|
SQLSRV_ERR_ALL | Vengono restituiti gli errori e gli avvisi generati nell'ultima chiamata di funzione sqlsrv . |
SQLSRV_ERR_ERRORS | Vengono restituiti gli errori generati nell'ultima chiamata di funzione sqlsrv . |
SQLSRV_ERR_WARNINGS | Vengono restituiti gli avvisi generati nell'ultima chiamata di funzione sqlsrv . |
Se non viene specificato alcun valore di parametro, vengono restituiti gli avvisi e gli errori generati dall'ultima chiamata di funzione sqlsrv .
Valore restituito
Una matrice di matrici oppure null. Ogni matrice della matrice restituita contiene tre coppie chiave-valore. Nella tabella seguente sono elencate le chiavi con la relativa descrizione:
Chiave | Descrizione |
---|---|
SQLSTATE | Per errori originati dal driver ODBC, il valore SQLSTATE restituito da ODBC. Per informazioni sui valori SQLSTATE per ODBC, vedere Codici di errore ODBC. Per gli errori che hanno origine dai driver Microsoft per PHP per SQL Server, SQLSTATE di IMSSP. Per gli avvisi che hanno origine dai driver Microsoft per PHP per SQL Server, SQLSTATE di 01SSP. |
codice | Per errori originati da SQL Server, il codice di errore nativo di SQL Server. Per errori originati dal driver ODBC, il codice di errore restituito da ODBC. Per gli errori che hanno origine dai driver Microsoft per PHP per SQL Server, codice di errore di Driver Microsoft per PHP per SQL Server. Per altre informazioni, vedere Handling Errors and Warnings. |
messaggio | Una descrizione dell'errore. |
I valori della matrice sono accessibili anche con le chiavi numeriche 0, 1 e 2. Se non si verificano errori o avvisi, viene restituito null .
Esempio
L'esempio seguente visualizza gli errori che si verificano durante l'esecuzione di un'istruzione non riuscita. L'istruzione ha esito negativo perché InvalidColumName non è un nome di colonna valido nella tabella specificata. Nell'esempio si presuppone che SQL Server e il database AdventureWorks siano installati nel computer locale. Quando si esegue l'esempio dalla riga di comando, tutto l'output viene scritto nel browser.
<?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);
?>