sqlsrv_errors

Descarregar o driver PHP

Devolve informação de erro estendido e/ou aviso sobre a última operação sqlsrv realizada.

A função sqlsrv_errors pode devolver informação de erro e/ou aviso ao chamá-la com um dos valores do parâmetro especificados na secção Parâmetros abaixo.

Por defeito, os avisos gerados numa chamada a qualquer função sqlsrv são tratados como erros; Se ocorrer um aviso numa chamada para uma função SQLSRV , a função devolve false. No entanto, avisos que correspondem aos valores SQLSTATE 01000, 01001, 01003 e 01S02 nunca são tratados como erros.

A linha de código seguinte desativa o comportamento mencionado acima; Um aviso gerado por uma chamada a uma função SQLSRV não faz com que a função devolva false:

sqlsrv_configure("WarningsReturnAsErrors", 0);  

A linha de código seguinte restabelece o comportamento padrão; Avisos (com exceções, referidas acima) são tratados como erros:

sqlsrv_configure("WarningsReturnAsErrors", 1);  

Independentemente da definição, os avisos só podem ser recuperados chamando sqlsrv_errors com o valor do parâmetro SQLSRV_ERR_ALL ou SQLSRV_ERR_WARNINGS (ver a secção Parâmetros abaixo para mais detalhes).

Syntax

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

Parâmetros

$errorsAndOrWarnings[OPCIONAL]: Uma constante pré-definida. Este parâmetro pode assumir um dos valores listados na tabela seguinte:

Valor Descrição
SQLSRV_ERR_ALL Erros e avisos gerados na última chamada de função sqlsrv são retornados.
SQLSRV_ERR_ERRORS Os erros gerados na última chamada de função sqlsrv são devolvidos.
SQLSRV_ERR_WARNINGS Os avisos gerados na última chamada de função sqlsrv são devolvidos.

Se não for fornecido um valor de parâmetro, tanto erros como avisos gerados pela última chamada de função sqlsrv são devolvidos.

Valor de retorno

Um array de arrays, ou nulo. Cada array no array devolvido contém três pares-chave-valor. A tabela seguinte lista cada chave e a sua descrição:

Chave Descrição
SQLSTATE Para erros originários do driver ODBC, o SQLSTATE é devolvido pelo ODBC. Para informações sobre valores SQLSTATE para ODBC, consulte Códigos de Erro ODBC.

Para erros que têm origem nos drivers Microsoft para PHP para SQL Server, um SQLSTATE do IMSSP.

Para avisos que têm origem nos drivers da Microsoft para PHP para SQL Server, um SQLSTATE do 01SSP.
código Para erros que têm origem no SQL Server, o código de erro nativo do SQL Server.

Para erros que se originam do driver ODBC, o código de erro é devolvido pelo ODBC.

Para erros que têm origem nos Microsoft Drivers for PHP for SQL Server, no código de erro dos Microsoft Drivers for PHP for SQL Server. Para mais informações, consulte Gestão de Erros e Avisos.
mensagem Uma descrição do erro.

Os valores do array também podem ser acedidos com as chaves numéricas 0, 1 e 2. Se não ocorrerem erros ou avisos, o nulo é devolvido.

Example

O exemplo seguinte mostra erros que ocorrem durante uma execução falhada de uma instrução. (A instrução falha porque InvalidColumName não é um nome de coluna válido na tabela especificada.) O exemplo assume que o SQL Server e a base de dados AdventureWorks estão instalados no computador local. Toda a saída é escrita para a consola quando o exemplo é executado a partir da linha de comandos.

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