(沒有版本資訊,可能只在 Git 中)
sqlsrv_errors — 傳回最後執行的 SQLSRV 操作的錯誤和警告資訊
errorsOrWarnings
決定要返回錯誤資訊、警告資訊,或兩者都返回。如果未提供此參數,則會返回錯誤資訊和警告資訊。此參數支援下列值:SQLSRV_ERR_ALL、SQLSRV_ERR_ERRORS、SQLSRV_ERR_WARNINGS。
如果最後一次 sqlsrv 操作發生錯誤及/或警告,則會返回一個包含錯誤資訊的陣列。如果最後一次 sqlsrv 操作沒有發生錯誤及/或警告,則會返回 null
。下表說明返回陣列的結構。
鍵值 | 說明 |
---|---|
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 設定。