Tipi di dati PHP predefiniti

Download del driver PHP

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
decimal String carattere a 8 bit1
float Float carattere a 8 bit1
geografia Stream Binario3
geometria Stream Binario3
image5 Stream2 Binario3
int Intero carattere a 8 bit1
money String carattere a 8 bit1
nchar String carattere a 8 bit1
numeric Stringa 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
  1. 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.

  2. 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.

  3. I dati vengono restituiti come flusso di byte non elaborati proveniente dal server senza alcuna codifica o conversione.

  4. 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.

  5. Si tratta di un tipo legacy che esegue il mapping al tipo varbinary(max).

  6. Si tratta di un tipo legacy che esegue il mapping al tipo nvarchar(max).

  7. sql_variant non è supportato nei parametri bidirezionali o di output.

  8. Si tratta di un tipo legacy che esegue il mapping al tipo varchar(max).

  9. 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
Tipi CLR definiti dall'utente di grandi dimensioni (UDT)
Nome dell'entità servizio No
MERGE
FILESTREAM Parziale

Il supporto dei tipi parziale indica che non è possibile eseguire una query a livello di programmazione per il tipo della colonna.

Vedi anche

Costanti (driver Microsoft per PHP per SQL Server)

Conversione dei tipi di dati

Tipi PHP

Tipi di dati (Transact-SQL)

sqlsrv_field_metadata