PDO::getAttribute
擷取預先定義的 PDO 或驅動程式屬性值。
語法
mixed PDO::getAttribute ( $attribute )
參數
$attribute:其中一個支援的屬性。 如需支援的屬性清單,請參閱<備註>一節。
傳回值
如果成功,會傳回連接選項、預先定義的 PDO 屬性或自訂驅動程式屬性的值。 如果失敗,則會傳回 null。
備註
下表包含支援的屬性清單。
屬性 | 處理者 | 支援的值 | 描述 |
---|---|---|---|
PDO::ATTR_CASE | PDO | PDO::CASE_LOWER PDO::CASE_NATURAL PDO::CASE_UPPER |
指定資料行名稱是否應為特定的大小寫。 PDO::CASE_LOWER 會強制使用小寫的資料行名稱、PDO::CASE_NATURAL 會保留資料庫所傳回的資料行名稱,而 PDO::CASE_UPPER 會強制使用大寫的資料行名稱。 預設值是 PDO::CASE_NATURAL。 也可以使用 PDO::setAttribute 設定此屬性。 |
PDO::ATTR_CLIENT_VERSION | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | 字串陣列 | 描述驅動程式和相關程式庫的版本。 傳回具有下列元素的陣列:ODBC 版本 (MajorVer.MinorVer)、SQL Server Native Client DLL 名稱和版本、Microsoft Drivers for PHP for SQL Server 版本 (MajorVer.MinorVer.BuildNumber.Revision) |
PDO::ATTR_DEFAULT_STR_PARAM | PDO | PDO::PARAM_STR_CHAR PDO::PARAM_STR_NATL |
如果不是設定為 PDO::PARAM_STR_CHAR,則傳回 PDO::PARAM_STR_NATL。 |
PDO::ATTR_DRIVER_NAME | PDO | String | 一律傳回 "sqlsrv"。 |
PDO::ATTR_DRIVER_VERSION | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | 字串 | 指出 Microsoft Drivers for PHP for SQL Server 版本 (MajorVer.MinorVer.BuildNumber.Revision) |
PDO::ATTR_ERRMODE | PDO | PDO::ERRMODE_SILENT PDO::ERRMODE_WARNING PDO::ERRMODE_EXCEPTION |
指定驅動程式處理失敗的方式。 PDO::ERRMODE_SILENT (預設值) 會設定錯誤碼和資訊。 PDO::ERRMODE_WARNING 會引發 E_WARNING。 PDO::ERRMODE_EXCEPTION 會引發例外狀況。 也可以使用 PDO::setAttribute 設定此屬性。 |
PDO::ATTR_ORACLE_NULLS | PDO | 請參閱 PDO 文件。 | 請參閱 PDO 文件。 |
PDO::ATTR_SERVER_INFO | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | 3 個元素的陣列 | 傳回目前的資料庫、SQL Server 版本和 SQL Server 執行個體。 |
PDO::ATTR_SERVER_VERSION | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | String | 指出 SQL Server 版本 (Major.Minor.BuildNumber) |
PDO::ATTR_STRINGIFY_FETCHES | PDO | 請參閱 PDO 文件。 | 請參閱 PDO 文件。 |
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | 1 到 PHP 記憶體限制。 | 設定將保留用戶端資料指標結果集的緩衝區大小。 預設值為 10,240 KB (10 MB)。 如需用戶端資料指標的詳細資訊,請參閱資料指標類型 (SQLSRV 驅動程式)。 |
PDO::SQLSRV_ATTR_DIRECT_QUERY | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | true false |
指定直接或備妥的查詢執行。 如需詳細資訊,請參閱 PDO_SQLSRV 驅動程式中的直接陳述式執行和已備妥的陳述式執行。 |
PDO::SQLSRV_ATTR_ENCODING | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | PDO::SQLSRV_ENCODING_UTF8 PDO::SQLSRV_ENCODING_SYSTEM |
指定驅動程式用來與伺服器通訊的字元集編碼。 預設值為 PDO::SQLSRV_ENCODING_UTF8。 |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | true 或 false | 處理從數值 SQL 類型 (bit、integer、smallint、tinyint、float 及 real) 資料行擷取的數值。 開啟連線選項旗標 ATTR_STRINGIFY_FETCHES 時,即使已開啟 SQLSRV_ATTR_FETCHES_NUMERIC_TYPE,傳回的值還是字串。 若繫結資料行中傳回的 PDO 類型為 PDO_PARAM_INT,即使已關閉 SQLSRV_ATTR_FETCHES_NUMERIC_TYPE,整數資料行的傳回值還是 int。 |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | 用於 SQL Server 之 PHP 的 Microsoft 驅動程式 | 整數 | 設定查詢逾時 (以秒為單位)。 預設值為 0,表示驅動程式將會無限期地等候結果。 不允許使用負數。 |
PDO 會處理一些預先定義的屬性,然而需要驅動程式才能處理其他屬性。 驅動程式會處理所有的自訂屬性和連線選項,而不支援的屬性或連線選項會傳回 Null。
PDO 支援已新增至 Microsoft Drivers for PHP for SQL Server 2.0 版。
範例
此範例顯示 PDO::ATTR_ERRMODE 屬性的值 (在變更其值之前和之後)。
<?php
$database = "AdventureWorks";
$conn = new PDO( "sqlsrv:server=(local) ; Database = $database", "", "");
$attributes1 = array( "ERRMODE" );
foreach ( $attributes1 as $val ) {
echo "PDO::ATTR_$val: ";
var_dump ($conn->getAttribute( constant( "PDO::ATTR_$val" ) ));
}
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$attributes1 = array( "ERRMODE" );
foreach ( $attributes1 as $val ) {
echo "PDO::ATTR_$val: ";
var_dump ($conn->getAttribute( constant( "PDO::ATTR_$val" ) ));
}
// An example using PDO::ATTR_CLIENT_VERSION
print_r($conn->getAttribute( PDO::ATTR_CLIENT_VERSION ));
?>