預設 PHP 資料類型
當您從伺服器擷取資料時,SQL Server Driver for PHP 會將資料轉換成預設的 PHP 資料類型 (如果使用者未指定任何 PHP 資料類型)。下表列出 SQL Server 資料類型 (從伺服器擷取的資料類型)、預設 PHP 資料類型 (資料轉換的目標資料類型),以及資料流和字串的預設編碼方式。如需有關從伺服器擷取資料時如何指定資料類型的詳細資料,請參閱<如何:指定 PHP 資料類型>。
SQL Server 類型 | 預設 PHP 類型 | 預設編碼方式 |
---|---|---|
bigint |
字串 |
8 位元字元1 |
binary |
資料流2 |
二進位3 |
bit |
整數 |
8 位元字元1 |
char |
字串 |
8 位元字元1 |
datetime8 |
Datetime |
不適用 |
decimal |
字串 |
8 位元字元1 |
float |
Float |
8 位元字元1 |
image4 |
資料流2 |
二進位3 |
int |
整數 |
8 位元字元1 |
money |
字串 |
8 位元字元1 |
nchar |
字串 |
8 位元字元1 |
numeric |
字串 |
8 位元字元1 |
nvarchar |
字串 |
8 位元字元1 |
nvarchar(MAX) |
資料流2 |
8 位元字元1 |
ntext5 |
資料流2 |
8 位元字元1 |
real |
Float |
8 位元字元1 |
smalldatetime |
Datetime |
8 位元字元1 |
smallint |
整數 |
8 位元字元1 |
smallmoney |
字串 |
8 位元字元1 |
sql_variant |
字串 |
8 位元字元1 |
text6 |
資料流2 |
8 位元字元1 |
timestamp |
字串 |
8 位元字元1 |
tinyint |
整數 |
8 位元字元1 |
UDT |
資料流2 |
二進位3 |
uniqueidentifier |
字串7 |
8 位元字元1 |
varbinary |
資料流2 |
二進位3 |
varbinary(MAX) |
資料流2 |
二進位3 |
varchar |
字串 |
8 位元字元1 |
varchar(MAX) |
資料流2 |
8 位元字元1 |
variant |
不支援 |
不支援 |
xml |
資料流2 |
8 位元字元1 |
下表列出 SQL Server Driver for PHP 1.1 版中新增的類型,可支援 SQL Server 2008 的資料類型。
SQL Server 類型 | 預設 PHP 類型 | 預設編碼方式 |
---|---|---|
date8 |
Datetime |
不適用 |
time8 |
Datetime |
不適用 |
datetime28 |
Datetime |
不適用 |
datetimeoffset8 |
Datetime |
不適用 |
geography |
STREAM |
二進位3 |
geometry |
STREAM |
二進位3 |
- 資料會在 8 位元字元中傳回,如同系統上設定之 Windows 地區設定的字碼頁內所指定。任何未對應到此字碼頁的多位元組字元都會以單一位元組的問號 (?) 字元來替代。
- 如果使用 sqlsrv_fetch_array 或 sqlsrv_fetch_object 擷取具有資料流之預設 PHP 類型的資料,該資料將會使用與資料流相同的編碼方式當做字串傳回。例如,如果使用 sqlsrv_fetch_array 擷取 SQL Server 二進位類型,預設的傳回類型將會是二進位字串。
- 資料會以原始位元組資料流的形式從伺服器傳回,而不會執行編碼或轉譯。
- 這是對應至 varbinary(max) 類型的傳統類型。
- 這是對應至 nvarchar(max) 類型的傳統類型。
- 這是對應至 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 資料類型和功能
SQL Server Driver for PHP 1.1 版不支援 SQL Server 2008 中新增而且存在資料行外部的資料類型 (例如資料表值參數)。下表將摘要列出 SQL Server 2008 新增功能的 PHP 支援。
功能 | PHP 支援 |
---|---|
資料表值參數 |
否 |
疏鬆資料行 |
部分 |
Null 位元壓縮 |
是 |
大型 CLR 使用者定義型別 (UDT) |
是 |
服務主要名稱 |
否 |
MERGE |
是 |
FILESTREAM |
部分 |
部分類型支援表示您無法以程式設計方式查詢資料行的類型。