PHP-Standarddatentypen
Wenn vom Benutzer kein PHP-Datentyp angegeben wurde, werden die Daten beim Abrufen vom Server von Microsoft-Treiber für PHP für SQL Server in einen PHP-Standarddatentyp konvertiert.
Wenn Daten mit dem Treiber PDO_SQLSRV zurückgegeben werden, wird als Datentyp entweder „int“ oder „string“ verwendet.
Im weiteren Verlauf dieses Themas werden die Standarddatentypen erläutert, die den SQLSRV-Treiber verwenden.
Die folgende Tabelle enthält den SQL Server-Datentyp (der Datentyp, der vom Server abgerufen wird), den PHP-Standarddatentyp (der Datentyp, in den Daten konvertiert werden) und die Standardcodierung für Datenströme und Zeichenfolgen. Weitere Informationen dazu, wie Sie Datentypen beim Abrufen von Daten vom Server festlegen, finden Sie unter How to: Specify PHP Data Types.
SQL Server-Typ | PHP-Standardtyp | Standardcodierung |
---|---|---|
BIGINT | String | 8-Bit-Zeichen1 |
BINARY | Datenstrom2 | Binär3 |
bit | Integer | 8-Bit-Zeichen1 |
char | String | 8-Bit-Zeichen1 |
Datum4 | Datetime | Nicht zutreffend |
datetime4 | Datetime | Nicht zutreffend |
datetime24 | Datetime | Nicht zutreffend |
datetimeoffset4 | Datetime | Nicht zutreffend |
Decimal | String | 8-Bit-Zeichen1 |
float | Float | 8-Bit-Zeichen1 |
geography | Datenstrom | Binär3 |
Geometrie | Datenstrom | Binär3 |
image5 | Datenstrom2 | Binär3 |
INT | Integer | 8-Bit-Zeichen1 |
money | String | 8-Bit-Zeichen1 |
NCHAR | String | 8-Bit-Zeichen1 |
NUMERIC | String | 8-Bit-Zeichen1 |
NVARCHAR | String | 8-Bit-Zeichen1 |
nvarchar(Max) | Datenstrom2 | 8-Bit-Zeichen1 |
ntext6 | Datenstrom2 | 8-Bit-Zeichen1 |
real | Float | 8-Bit-Zeichen1 |
smalldatetime | Datetime | 8-Bit-Zeichen1 |
SMALLINT | Integer | 8-Bit-Zeichen1 |
SMALLMONEY | String | 8-Bit-Zeichen1 |
sql_variant7 | String | 8-Bit-Zeichen1 |
text8 | Datenstrom2 | 8-Bit-Zeichen1 |
time4 | Datetime | Nicht zutreffend |
timestamp | String | 8-Bit-Zeichen1 |
TINYINT | Integer | 8-Bit-Zeichen1 |
UDT | Datenstrom2 | Binär3 |
UNIQUEIDENTIFIER | String9 | 8-Bit-Zeichen1 |
varbinary | Datenstrom2 | Binär3 |
varbinary(MAX) | Datenstrom2 | Binär3 |
varchar | String | 8-Bit-Zeichen1 |
varchar(MAX) | Datenstrom2 | 8-Bit-Zeichen1 |
Xml | Datenstrom2 | 8-Bit-Zeichen1 |
Daten werden in 8-Bit-Zeichen gemäß der Codepage des im System eingestellten Windows-Gebietsschemas zurückgegeben. Alle Multi-Byte-Zeichen oder Zeichen, die nicht in dieser Codepage enthalten sind, werden durch ein aus einem einzelnen Byte bestehendes Fragezeichen (?) ersetzt.
Wenn sqlsrv_fetch_array oder sqlsrv_fetch_object verwendet wird, um Daten abzurufen, die den PHP-Standardtyp „Stream“ besitzen, werden die Daten als Zeichenfolge ausgegeben und genauso wie der Stream codiert. Wird z.B. einer der binären SQL Server-Datentypen über sqlsrv_fetch_array abgerufen, so wird als Standardrückgabetyp eine binäre Zeichenfolge verwendet.
Die Daten werden als uncodierter und nicht übersetzter Strom aus unbearbeiteten Bytes vom Server zurückgegeben.
Daten des Typs „Datum“ und „Uhrzeit“ können als Zeichenfolgen abgerufen werden. Weitere Informationen finden Sie unter So wird's gemacht: Datums- und Uhrzeittypen mittels des SQLSRV-Treibers als Zeichenfolgen abrufen.
Dies ist ein veralteter Typ, der dem varbinary(max)-Typ zugeordnet ist.
Dies ist ein veralteter Typ, der dem nvarchar(max)-Typ zugeordnet ist.
Der Typ sql_variant wird in bidirektionalen und Ausgabeparametern nicht unterstützt.
Dies ist ein veralteter Typ, der dem varchar(max)-Typ zugeordnet ist.
Als „UNIQUEIDENTIFIER“ werden GUIDs bezeichnet, die den folgenden regulären Ausdruck aufweisen.
[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}
Weitere neue Datentypen und Funktionen in SQL Server 2008
Datentypen, die in SQL Server 2008 neu sind und die außerhalb von Spalten (z.B. Tabellenwertparameter) vorhanden sind, werden in Microsoft-Treiber für PHP für SQL Server nicht unterstützt. Die folgende Tabelle fasst die PHP-Unterstützung für die neuen Features von SQL Server 2008 zusammen.
Feature | PHP-Unterstützung |
---|---|
Tabellenwertparameter | No |
Spalten mit geringer Dichte | Partial |
NULL-Bit-Komprimierung | Ja |
Große benutzerdefinierte CLR-Typen (UDTs) | Ja |
Dienstprinzipalname | No |
MERGE | Ja |
FILESTREAM | Partial |
Teilweise Unterstützung besagt, dass Sie den Spaltentyp nicht programmgesteuert abfragen können.