Compartir a través de


sqlsrv_errors

Devuelve información de error o advertencia extendida acerca de la última operación sqlsrv realizada.

La función sqlsrv_errors puede devolver información de error o advertencia llamándola con uno los valores de parámetros especificado en la sección Parámetros que aparece más adelante.

De forma predeterminada, las advertencias generadas en una llamada a cualquier función sqlsrv se tratan como errores; si se genera una advertencia en una llamada a una función sqlsrv, la función devuelve false. Sin embargo, las advertencias que corresponden a los valores 01000, 01001, 01003 y 01S02 de SQLSTATE nunca se tratan como errores.

La línea de código siguiente desactiva el comportamiento mencionado anteriormente; una advertencia generada en una llamada a una función sqlsrv no provoca que la función devuelva false:

sqlsrv_configure("WarningsReturnAsErrors", 0);

La siguiente línea de código restaura el comportamiento predeterminado; las advertencias (con excepciones, que se han indicado anteriormente) se tratan como errores:

sqlsrv_configure("WarningsReturnAsErrors", 1);

Con independencia de la configuración, las advertencias se pueden recuperar únicamente llamando a sqlsrv_errors con el valor de parámetro SQLSRV_ERR_ALL o SQLSRV_ERR_WARNINGS (consulte la sección Parámetros más adelante para obtener más detalles).

Sintaxis

sqlsrv_errors( [int $errorsAndOrWarnings] )

Parámetros

$errorsAndOrWarnings [OPCIONAL]: una constante predefinida. Este parámetro puede tomar uno de los valores enumerados en la tabla siguiente:

Valor Descripción

SQLSRV_ERR_ALL

Se devuelven los errores y las advertencias generados en la última llamada a una función sqlsrv.

SQLSRV_ERR_ERRORS

Se devuelven los errores generados en la última llamada a una función sqlsrv.

SQLSRV_ERR_WARNINGS

Se devuelven las advertencias generadas en la última llamada a una función sqlsrv.

Si no se proporciona ningún valor de parámetros, se devuelven los errores y advertencias generadas por la última llamada a una función sqlsrv.

Valor devuelto

Una array de matrices o null. Cada array de la array devuelta contiene tres pares clave-valor. La tabla siguiente muestra cada clave y su descripción:

Clave Descripción

SQLSTATE

Para errores que se originan en el controlador ODBC, los valores SQLSTATE devueltos por ODBC. Para obtener información acerca de los valores SQLSTATE para ODBC, vea Códigos de error de ODBC.

Para errores que se originan en el Controlador de SQL Server para PHP, un valor SQLSTATE de IMSSP.

Para advertencias que se originan en el Controlador de SQL Server para PHP, un valor SQLSTATE de 01SSP.

código

Para errores que se originan en SQL Server, el código de error de SQL Server nativo.

Para errores que se originan en el controlador ODBC, el código de error devuelto por ODBC.

Para errores que se originan en el Controlador de SQL Server para PHP, el código de error del Controlador de SQL Server para PHP.

mensaje

Una descripción del error.

También se puede obtener acceso a los valores de matriz con las claves numéricas 0, 1 y 2. Si no se produce ningún error o advertencia, se devuelve null.

Ejemplo

En el ejemplo siguiente se muestra los errores generados cuando no se pudo realizar la ejecución de una instrucción. (La instrucción produce un error porque InvalidColumName no es un nombre de columna válido de la tabla especificada.) En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.

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

Vea también

Conceptos

Acerca de ejemplos de código en la documentación

Otros recursos

Referencia de la API (Controlador SQL Server para PHP)