(无版本信息可用,可能仅存在于 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 设置。