(没有版本信息可用,可能只在 Git 中)
sqlsrv_errors — 返回有关执行的最后一个 SQLSRV 操作的错误和警告信息
errorsOrWarnings
确定返回错误信息、警告信息还是两者。如果未提供此参数,则返回错误信息和警告信息。此参数支持以下值:SQLSRV_ERR_ALL、SQLSRV_ERR_ERRORS、SQLSRV_ERR_WARNINGS。
如果在上次 sqlsrv 操作中发生错误和/或警告,则返回包含错误信息的数组数组。如果在上次 sqlsrv 操作中没有发生错误和/或警告,则返回 **null
**。下表描述了返回数组的结构
键 | 描述 |
---|---|
SQLSTATE | 对于源自 ODBC 驱动程序的错误,由 ODBC 返回的 SQLSTATE。对于源自 Microsoft Drivers for PHP for SQL Server 的错误,SQLSTATE 为 IMSSP。对于源自 Microsoft Drivers for PHP for SQL Server 的警告,SQLSTATE 为 01SSP。 |
code | 对于源自 SQL Server 的错误,本地 SQL Server 错误代码。对于源自 ODBC 驱动程序的错误,由 ODBC 返回的错误代码。对于源自 Microsoft Drivers for PHP for SQL Server 的错误,Microsoft Drivers for PHP for SQL Server 错误代码。 |
message | 错误的描述。 |
示例 #1 functionname() 示例
<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
/* 设置一个查询以选择无效的列名。 */
$sql = "SELECT BadColumnName FROM Table_1";
/* 由于列名错误,查询执行将失败。 */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "code: ".$error[ 'code']."<br />";
echo "message: ".$error[ 'message']."<br />";
}
}
}
?>
默认情况下,在调用任何 SQLSRV 函数时生成的警告被视为错误。这意味着,如果在调用 SQLSRV 函数时发生警告,该函数将返回 **false
**。但是,与 SQLSTATE 值 01000、01001、01003 和 01S02 对应的警告永远不会被视为错误。有关更改此行为的信息,请参阅 sqlsrv_configure() 和 WarningsReturnAsErrors 设置。