(No version information available, might only be in Git)
sqlsrv_errors — Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV.
errorsOrWarningsОпределяет, возвращаются ли сведения об ошибках, предупреждения или и то и другое. Если параметр не указан, возвращаются как информация об ошибке, так и информация о предупреждениях. Поддерживаются следующие значения параметра: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.
Если при последней операции sqlsrv возникли ошибки и/или предупреждения, возвращается массив массивов,
содержащих информацию об ошибках. Если при последней операции sqlsrv не было ошибок и/или предупреждений, возвращается null.
В следующей таблице описана структура возвращаемых массивов:
| Ключ | Описание |
|---|---|
| SQLSTATE | Для ошибок, которые возникают из-за драйвера ODBC, возвращается SQLSTATE, возвращаемый ODBC. Для ошибок, которые возникают из-за драйверов Microsoft для PHP для SQL Server, возвращается SQLSTATE IMSSP. Для предупреждений, которые возникают из-за драйверов Microsoft для PHP для SQL Server, SQLSTATE возвращает значение 01SSP. |
| code | Для ошибок, которые возникают из-за SQL Server, возвращает собственный код ошибки SQL Server. Для ошибок, возникающих из-за драйвера ODBC, возвращается код ошибки, возвращаемый ODBC. Для ошибок, которые возникают из-за драйверов Microsoft для PHP для SQL Server, возвращается код ошибки Microsoft Drivers для PHP для 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 "Код: ".$error[ 'code']."<br />";
echo "Сообщение: ".$error[ 'message']."<br />";
}
}
}
?>
По умолчанию предупреждения, генерируемые при вызове любой функции SQLSRV, обрабатываются как ошибки.
Это означает, что если при вызове функции SQLSRV возникает предупреждение, функция возвращает false.
Однако предупреждения, соответствующие значениям SQLSTATE 01000, 01001, 01003 и 01S02, никогда не рассматриваются как ошибки.
Для получения информации об изменении этого поведения смотрите описание функции sqlsrv_configure()
и параметр WarningsReturnAsErrors.