預設 PHP 資料類型
從伺服器擷取資料時,如果使用者未曾指定任何 PHP 資料類型,則 Microsoft Drivers for PHP for SQL Server 會將資料轉換成預設的 PHP 資料類型。
使用 PDO_SQLSRV 驅動程式傳回資料時,資料類型會是 int 或 string。
本主題的其餘部分將討論使用 SQLSRV 驅動程式的預設資料類型。
下表列出 SQL Server 資料類型 (從伺服器擷取的資料類型)、預設 PHP 資料類型 (資料會轉換成的資料類型),以及資料流和字串的預設編碼。 如需從伺服器擷取資料時如何指定資料類型的詳細資訊,請參閱 How to: Specify PHP Data Types。
SQL Server 類型 | 預設 PHP 類型 | 預設編碼 |
---|---|---|
BIGINT | String | 8 位元字元1 |
BINARY | 資料流2 | 二進位3 |
bit | 整數 | 8 位元字元1 |
char | String | 8 位元字元1 |
date4 | Datetime | 不適用 |
datetime4 | Datetime | 不適用 |
datetime24 | Datetime | 不適用 |
datetimeoffset4 | Datetime | 不適用 |
decimal | String | 8 位元字元1 |
FLOAT | Float | 8 位元字元1 |
geography | 資料流 | 二進位3 |
幾何 | 資料流 | 二進位3 |
image5 | 資料流2 | 二進位3 |
int | 整數 | 8 位元字元1 |
money | String | 8 位元字元1 |
NCHAR | String | 8 位元字元1 |
NUMERIC | String | 8 位元字元1 |
NVARCHAR | String | 8 位元字元1 |
nvarchar(MAX) | 資料流2 | 8 位元字元1 |
ntext6 | 資料流2 | 8 位元字元1 |
real | Float | 8 位元字元1 |
smalldatetime | Datetime | 8 位元字元1 |
SMALLINT | 整數 | 8 位元字元1 |
SMALLMONEY | String | 8 位元字元1 |
sql_variant7 | String | 8 位元字元1 |
text8 | 資料流2 | 8 位元字元1 |
time4 | Datetime | 不適用 |
timestamp | String | 8 位元字元1 |
TINYINT | 整數 | 8 位元字元1 |
UDT | 資料流2 | 二進位3 |
UNIQUEIDENTIFIER | String9 | 8 位元字元1 |
varbinary | 資料流2 | 二進位3 |
varbinary(MAX) | 資料流2 | 二進位3 |
varchar | String | 8 位元字元1 |
varchar(MAX) | 資料流2 | 8 位元字元1 |
Xml | 資料流2 | 8 位元字元1 |
資料會以如同在系統上設定之 Windows 地區設定的字碼頁中指定的 8 位元字元傳回。 系統會以單一位元組問號 (?) 字元取代任何多位元組字元或未對應到此字碼頁的字元。
如果 sqlsrv_fetch_array 或 sqlsrv_fetch_object 用來擷取預設 PHP 類型為「資料流」的資料,會以字串形式 (其編碼方式與資料流相同) 傳回資料。 例如,如果使用 sqlsrv_fetch_array 擷取 SQL Server 二進位類型,則預設傳回型別會是二進位字串。
資料會以原始位元組資料流形式從伺服器傳回,而不需執行編碼或轉譯。
可以字串形式擷取日期和時間。 如需詳細資訊,請參閱 如何:使用 SQLSRV 驅動程式,以字串的形式擷取日期和時間類型。
這是對應至 varbinary(max) 類型的傳統類型。
這是對應至 nvarchar(max) 類型的傳統類型。
雙向或輸出參數中不支援 sql_variant。
這是對應至 varchar(max) 類型的傳統類型。
UNIQUEIDENTIFIER 是下列規則運算式所代表的 GUID:
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-f]{4}-[0-9a-fA-f]{4}-[0-9a-fA-F]{12}
其他新的 SQL Server 2008 資料類型和功能
Microsoft Drivers for PHP for SQL Server 不支援 SQL Server 2008 的新資料類型,也不支援存在於資料行外的資料類型 (例如資料表值參數)。 下表摘要說明 SQL Server 2008 新功能的 PHP 支援。
功能 | PHP 支援 |
---|---|
資料表值參數 | 否 |
疏鬆資料行 | Partial |
Null 位元壓縮 | 是 |
大型 CLR 使用者定義型別 (UDT) | 是 |
服務主體名稱 | 否 |
MERGE | 是 |
FILESTREAM | Partial |
部分類型支援表示您無法以程式設計方式查詢資料行的類型。