发布:2014/7/8 23:55:36作者:管理员 来源:本站 浏览次数:1823
返回关于上次执行的 sqlsrv 操作的扩展错误和/或警告信息。
通过使用在下文“参数”部分中指定的其中一个参数值调用 sqlsrv_errors 函数,可使该函数返回错误和/或警告信息。
默认情况下,调用任何 sqlsrv 函数时生成的警告都被视为错误;如果在调用 sqlsrv 函数时出现警告,则该函数将返回 false。但是,与 SQLSTATE 值 01000、01001、01003 和 01S02 对应的警告永远不会被视为错误。
下面这行代码禁用上述行为;通过调用 sqlsrv 函数生成的警告不会使该函数返回 false:
sqlsrv_configure("WarningsReturnAsErrors", 0);
下面这行代码重新启用默认行为;警告(以及上述异常)会被视为错误:
sqlsrv_configure("WarningsReturnAsErrors", 1);
不论设置如何,警告都只能通过使用 sqlsrv_errors 或 SQLSRV_ERR_ALL 参数值(有关详细信息,请参阅下文中的“参数”部分)调用 SQLSRV_ERR_WARNINGS 来检索。
数组的 array 或 null。返回的 array 中的每个 array 均包含三个键值对。下表列出了每个键及其说明:
键 | 说明 |
---|---|
SQLSTATE |
对于来自 ODBC 驱动程序的错误,为 ODBC 返回的 SQLSTATE。有关 ODBC 的 SQLSTATE 值的信息,请参阅 ODBC Error Codes(ODBC 错误代码)。 对于来自 SQL Server Driver for PHP 的错误,SQLSTATE 为 IMSSP。 对于来自 SQL Server Driver for PHP 的警告,SQLSTATE 为 01SSP。 |
code |
对于来自 SQL Server 的错误,为本机 SQL Server 错误代码。 对于来自 ODBC 驱动程序的错误,为 ODBC 返回的错误代码。 对于来自 SQL Server Driver for PHP 的错误,为 SQL Server Driver for PHP 错误代码。 |
message |
对错误的说明。 |
也可以使用数字键 0、1 和 2 访问数组值。如果没有出现任何错误或警告,则返回 null。
下面的示例显示在语句执行失败时出现的错误。(该语句失败的原因是 InvalidColumName 不是指定表中的有效列名)。此示例假定本地计算机上已安装 SQL Server 和AdventureWorks 数据库。从命令行运行此示例时,所有的输出都将写入控制台。
<?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); ?>
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4