Tipi di dati PHP predefiniti
Quando si recuperano dati dal server, i Driver Microsoft per PHP per SQL Server convertono i dati in un tipo di dati PHP predefinito se non è stato specificato alcun tipo di dati PHP dall'utente.
Quando vengono restituiti dati mediante il driver PDO_SQLSRV, il tipo di dati sarà int o string.
Nella parte restante di questo argomento sono descritti i tipi di dati predefiniti del driver SQLSRV.
Nella tabella seguente sono elencati i tipi di dati di SQL Server (recuperati dal server), i tipi di dati PHP predefiniti (nei quali vengono convertiti i dati), nonché la codifica predefinita per i flussi e le stringhe. Per informazioni dettagliate su come specificare i tipi di dati durante il recupero di dati dal server, vedere How to: Specify PHP Data Types.
Tipo di SQL Server | Tipo PHP predefinito | Codifica predefinita |
---|---|---|
bigint | String | carattere a 8 bit1 |
binary | Stream2 | Binario3 |
bit | Intero | carattere a 8 bit1 |
char | String | carattere a 8 bit1 |
date4 | Datetime | Non applicabile |
datetime4 | Datetime | Non applicabile |
datetime24 | Datetime | Non applicabile |
datetimeoffset4 | Datetime | Non applicabile |
decimale | String | carattere a 8 bit1 |
float | Float | carattere a 8 bit1 |
geografia | Stream | Binario3 |
geometry | Stream | Binario3 |
image5 | Stream2 | Binario3 |
int | Intero | carattere a 8 bit1 |
money | String | carattere a 8 bit1 |
nchar | String | carattere a 8 bit1 |
numeric | String | carattere a 8 bit1 |
nvarchar | String | carattere a 8 bit1 |
nvarchar(MAX) | Stream2 | carattere a 8 bit1 |
ntext6 | Stream2 | carattere a 8 bit1 |
real | Float | carattere a 8 bit1 |
smalldatetime | Datetime | carattere a 8 bit1 |
smallint | Intero | carattere a 8 bit1 |
smallmoney | String | carattere a 8 bit1 |
sql_variant7 | String | carattere a 8 bit1 |
text8 | Stream2 | carattere a 8 bit1 |
time4 | Datetime | Non applicabile |
timestamp | String | carattere a 8 bit1 |
tinyint | Intero | carattere a 8 bit1 |
UDT | Stream2 | Binario3 |
uniqueidentifier | String9 | carattere a 8 bit1 |
varbinary | Stream2 | Binario3 |
varbinary(MAX) | Stream2 | Binario3 |
varchar | String | carattere a 8 bit1 |
varchar(MAX) | Stream2 | carattere a 8 bit1 |
xml | Stream2 | carattere a 8 bit1 |
I dati vengono restituiti come caratteri a 8 bit come specificato nella tabella codici delle impostazioni locali di Windows impostate nel sistema. Eventuali caratteri multibyte o che non eseguono il mapping in questa tabella codici vengono sostituiti con un carattere punto interrogativo (?) a byte singolo.
Se viene usato sqlsrv_fetch_array o sqlsrv_fetch_object per il recupero di dati con il tipo PHP predefinito Stream, i dati vengono restituiti come stringa con la stessa codifica del flusso. Se ad esempio un tipo binario di Microsoft SQL Server viene recuperato usando sqlsrv_fetch_array, il tipo restituito predefinito è una stringa binaria.
I dati vengono restituiti come flusso di byte non elaborati proveniente dal server senza alcuna codifica o conversione.
I tipi date e time possono essere recuperati come stringhe. Per altre informazioni, vedere Procedura: Recuperare il tipo data e ora come stringhe usando il driver SQLSRV.
Si tratta di un tipo legacy che esegue il mapping al tipo varbinary(max).
Si tratta di un tipo legacy che esegue il mapping al tipo nvarchar(max).
sql_variant non è supportato nei parametri bidirezionali o di output.
Si tratta di un tipo legacy che esegue il mapping al tipo varchar(max).
UNIQUEIDENTIFIER sono GUID rappresentati dall'espressione regolare seguente:
[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}
Nuovi tipi di dati e funzionalità di SQL Server 2008
I tipi di dati nuovi in SQL Server 2008 e presenti all'esterno delle colonne, ad esempio i parametri con valori di tabella, non sono supportati nei Driver Microsoft per PHP per SQL Server. Nella tabella seguente viene riepilogato il supporto PHP per le nuove funzionalità di SQL Server 2008.
Funzionalità | Supporto PHP |
---|---|
Parametro con valori di tabella | No |
Colonne di tipo sparse | Parziale |
Compressione bit Null | Sì |
Tipi CLR definiti dall'utente di grandi dimensioni (UDT) | Sì |
Nome dell'entità servizio | No |
MERGE | Sì |
FILESTREAM | Parziale |
Il supporto dei tipi parziale indica che non è possibile eseguire una query a livello di programmazione per il tipo della colonna.