共用方式為


記錄活動

根據預設,由 SQL Server Driver for PHP 產生的錯誤和警告並不會記錄下來。若要開啟記錄,您可以使用 sqlsrv_configure 函數或是改變 php.ini 檔。您可以記錄有關初始化、連接、陳述式或錯誤函數的活動。您也可以指定是要記錄錯誤、警告、通知還是三種都記錄。

開啟記錄

若要開啟記錄,請使用 sqlsrv_configure 函數來指定 LogSubsystems 設定的值。例如,以下這一行程式碼會設定驅動程式記錄有關連接的活動:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN);

下表描述可當做 LogSubsystems 設定之值使用的常數:

值 (括號中相同的整數) 描述

SQLSRV_LOG_SYSTEM_ALL (-1)

開啟所有子系統的記錄。

SQLSRV_LOG_SYSTEM_OFF (0)

關閉記錄。

SQLSRV_LOG_SYSTEM_INIT (1)

開啟初始化活動的記錄。

SQLSRV_LOG_SYSTEM_CONN (2)

開啟連接活動的記錄。

SQLSRV_LOG_SYSTEM_STMT (4)

開啟陳述式活動的記錄。

SQLSRV_LOG_SYSTEM_UTIL (8)

開啟錯誤函數活動的記錄 (例如 handle_error 和 handle_warning)。

您可以使用邏輯 OR 運算子 (|),一次為 LogSubsystems 設定值設定一個以上的值。例如,以下這行程式碼會開啟有關連接和陳述式活動的記錄:

sqlsrv_configure("LogSubsystems", SQLSRV_LOG_SYSTEM_CONN | SQLSRV_LOG_SYSTEM_STMT);

您也可以在 php.ini 檔中為 LogSubsystems 設定指定整數值來開啟記錄。例如,將以下這行加入到 php.ini 檔的 [sqlsrv] 區段將會開啟連接活動的記錄:

sqlsrv.LogSubsystems = 2

將整數值加在一起便可以一次指定多個選項。例如,將以下這行加入到 php.ini 檔的 [sqlsrv] 區段將會開啟連接和陳述式活動的記錄:

sqlsrv.LogSubsystems = 6

記錄錯誤、警告和通知

在您開啟記錄之後,必須指定要記錄哪些內容。您可以記錄以下其中一種或多種:錯誤、警告和通知。例如,以下這行程式碼指定只會記錄警告:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_WARNING);

注意

LogSeverity 的預設值為 SQLSRV_LOG_SEVERITY_ERROR。如果已開啟記錄,而且未指定 LogSeverity 的任何設定值,就只會記錄錯誤。

下表描述可當做 LogSeverity 設定之值使用的常數:

值 (括號中相同的整數) 描述

SQLSRV_LOG_SEVERITY_ALL (-1)

指定將會記錄錯誤、警告和通知。

SQLSRV_LOG_SEVERITY_ERROR (1)

指定將會記錄錯誤。

SQLSRV_LOG_SEVERITY_WARNING (2)

指定將會記錄警告。

SQLSRV_LOG_SEVERITY_NOTICE (4)

指定將會記錄通知。

您可以使用邏輯 OR 運算子 (|),一次為 LogSeverity 設定值設定一個以上的值。例如,以下這行程式碼指定應該會記錄錯誤和警告:

sqlsrv_configure("LogSeverity", SQLSRV_LOG_SEVERITY_ERROR | SQLSRV_LOG_SEVERITY_WARNING);

注意

LogSeverity 設定指定值並不會開啟記錄。若要開啟記錄,您必須為 LogSubsystems 設定指定值,然後為 LogSeverity 設定值來指定所要記錄之事項的嚴重性。

您也可以使用 php.ini 檔內的整數值,為 LogSeverity 設定值指定設定。例如,將以下這行加入到 php.ini 檔的 [sqlsrv] 區段只會啟用警告的記錄:

sqlsrv.LogSeverity = 2

將整數值加在一起便可以一次指定多個選項。例如,將以下這行加入到 php.ini 檔的 [sqlsrv] 區段將會啟用錯誤和警告的記錄:

sqlsrv.LogSeverity = 3

另請參閱

參考

sqlsrv_configure
sqlsrv_get_config

概念

SQLSRV 常數

其他資源

程式設計指南
API 參考 (SQL Server Driver for PHP)