2024 年 PHP 日本研討會

sqlsrv_errors

(沒有版本資訊,可能只在 Git 中)

sqlsrv_errors傳回最後執行的 SQLSRV 操作的錯誤和警告資訊

說明

sqlsrv_errors(int $errorsOrWarnings = ?): mixed

傳回最後執行的 SQLSRV 操作的錯誤和警告資訊。

參數

errorsOrWarnings

決定要返回錯誤資訊、警告資訊,或兩者都返回。如果未提供此參數,則會返回錯誤資訊和警告資訊。此參數支援下列值:SQLSRV_ERR_ALL、SQLSRV_ERR_ERRORS、SQLSRV_ERR_WARNINGS。

傳回值

如果最後一次 sqlsrv 操作發生錯誤及/或警告,則會返回一個包含錯誤資訊的陣列。如果最後一次 sqlsrv 操作沒有發生錯誤及/或警告,則會返回 null。下表說明返回陣列的結構。

sqlsrv_errors 返回的陣列
鍵值 說明
SQLSTATE 對於源自 ODBC 驅動程式的錯誤,會返回 ODBC 返回的 SQLSTATE。對於源自適用於 SQL Server 的 Microsoft Drivers for PHP 的錯誤,SQLSTATE 為 IMSSP。對於源自適用於 SQL Server 的 Microsoft Drivers for PHP 的警告,SQLSTATE 為 01SSP。
程式碼 對於源自 SQL Server 的錯誤,會返回原生 SQL Server 錯誤碼。對於源自 ODBC 驅動程式的錯誤,會返回 ODBC 返回的錯誤碼。對於源自適用於 SQL Server 的 Microsoft Drivers for PHP 的錯誤,會返回適用於 SQL Server 的 Microsoft Drivers for PHP 的錯誤碼。
訊息 錯誤的描述。

範例

範例 #1 函式名稱() 範例

<?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 設定。

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top