Costanti (driver Microsoft per PHP per SQL Server)

Download del driver PHP

Questo argomento illustra le costanti definite dai driver Microsoft per PHP per SQL Server.

Costanti del driver PDO_SQLSRV

Le costanti elencate nel sito Web PDO sono valide nei driver Microsoft per PHP per SQL Server.

Di seguito sono descritte le costanti specifiche di Microsoft del driver PDO_SQLSRV.

Costanti del livello di isolamento delle transazioni

La chiave TransactionIsolation usata con PDO::__constructaccetta una delle costanti seguenti:

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Per altre informazioni sulla chiave TransactionIsolation , vedere Connection Options.

Costanti di codifica

L'attributo PDO::SQLSRV_ATTR_ENCODING può essere passato a PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.

I valori disponibili da passare a PDO::SQLSRV_ATTR_ENCODING sono

Costante del driver PDO_SQLSRV Descrizione
PDO::SQLSRV_ENCODING_BINARY I dati sono un flusso di byte non elaborati proveniente dal server senza alcuna codifica o conversione.

Non valido per PDO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM I dati sono 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.
PDO::SQLSRV_ENCODING_UTF8 I dati hanno il formato di codifica UTF-8. Si tratta della codifica predefinita.
PDO::SQLSRV_ENCODING_DEFAULT Usa PDO::SQLSRV_ENCODING_SYSTEM se specificato durante la connessione.

Usare la codifica della connessione se specificato in un'istruzione prepare.

Timeout query

L'attributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT è un intero non negativo che rappresenta il periodo di timeout espresso in secondi. L'impostazione predefinita è zero (0) e indica nessun timeout.

È possibile specificare l'attributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT con PDOStatement::setAttribute, PDO::setAttribute e PDO::prepare.

Esecuzione diretta o preparata

È possibile selezionare l'esecuzione di query diretta o l'esecuzione di istruzione preparata con l'attributo PDO::SQLSRV_ATTR_DIRECT_QUERY. PDO::SQLSRV_ATTR_DIRECT_QUERY può essere impostato con PDO::prepare o PDO::setAttribute. Per altre informazioni su PDO::SQLSRV_ATTR_DIRECT_QUERY, vedere Esecuzione di istruzioni diretta e preparata nel driver PDO_SQLSRV.

Gestione dei recuperi numerici

L'attributo PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE può essere usato per gestire i recuperi numerici dalle colonne con tipi SQL numerici (bit, integer, smallint, tinyint, float e real). Se PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE è impostato su True, i risultati di una colonna integer sono rappresentati come valori integer, mentre i valori SQL di tipo float e real sono rappresentati come valori float. Questo attributo può essere impostato con PDOStatement::setAttribute.

Il comportamento predefinito della formattazione decimale può essere modificato con gli attributi PDO::SQLSRV_ATTR_FORMAT_DECIMALS e PDO::SQLSRV_ATTR_DECIMAL_PLACES. Il comportamento di questi attributi è identico a quello delle opzioni corrispondenti sul lato SQLSRV (FormatDecimals e DecimalPlaces), ad eccezione del fatto che i parametri di output non sono supportati per la formattazione. Questi attributi possono essere impostati a livello di connessione o di istruzione con PDO::setAttribute o PDOStatement::setAttribute, ma qualsiasi attributo di istruzione eseguirà l'override dell'attributo di connessione corrispondente. Per altri dettagli, vedere Formattazione di stringhe decimali e valori money (driver PDO_SQLSRV).

Gestione di recuperi di data e ora

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE specifica se recuperare i tipi di data e ora come oggetti DateTime PHP. Se false, il comportamento predefinito è restituirli come stringhe. Questo attributo può essere impostato a livello di connessione o di istruzione con PDO::setAttribute o PDOStatement::setAttribute, ma qualsiasi attributo di istruzione eseguirà l'override dell'attributo di connessione corrispondente. Per altre informazioni, vedere Procedura: Recuperare i tipi di data e ora come oggetti DateTime PHP usando il driver PDO_SQLSRV.

SQLSRV

Nelle sezioni seguenti sono elencate le costanti usate dal driver SQLSRV.

Costanti ERR

Nella tabella seguente vengono elencate le costanti usate per specificare se sqlsrv_errors restituisce errori, avvisi o entrambi.

Valore Descrizione
SQLSRV_ERR_ALL Vengono restituiti gli errori e gli avvisi generati nell'ultima chiamata di funzione sqlsrv . Questo è il valore predefinito.
SQLSRV_ERR_ERRORS Vengono restituiti gli errori generati nell'ultima chiamata di funzione sqlsrv .
SQLSRV_ERR_WARNINGS Vengono restituiti gli avvisi generati nell'ultima chiamata di funzione sqlsrv .

Costanti FETCH

Nella tabella seguente sono elencate le costanti usate per specificare il tipo di matrice restituita da sqlsrv_fetch_array.

Costante SQLSRV Descrizione
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array restituisce la riga di dati successiva come matrice associativa.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array restituisce la riga di dati successiva come matrice con chiavi numeriche e associative. Questo è il valore predefinito.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array restituisce la riga di dati successiva come matrice indicizzata numericamente.

Costanti di registrazione

In questa sezione sono elencate le costanti usate per modificare le impostazioni di registrazione con sqlsrv_configure. Per altre informazioni sulla registrazione, vedere Logging Activity.

Nella tabella seguente sono elencate le costanti che possono essere usate come valore dell'impostazione LogSubsystems :

Costante SQLSRV (intero equivalente tra parentesi) Descrizione
SQLSRV_LOG_SYSTEM_ALL (-1) Attiva la registrazione di tutti i sottosistemi.
SQLSRV_LOG_SYSTEM_CONN (2) Attiva la registrazione dell'attività di connessione.
SQLSRV_LOG_SYSTEM_INIT (1) Attiva la registrazione dell'attività di inizializzazione.
SQLSRV_LOG_SYSTEM_OFF (0) Disattiva la registrazione.
SQLSRV_LOG_SYSTEM_STMT (4) Attiva la registrazione delle attività delle istruzioni.
SQLSRV_LOG_SYSTEM_UTIL (8) Attiva la registrazione delle attività delle funzioni di errore, ad esempio handle_error e handle_warning.

Nella tabella seguente sono elencate le costanti che possono essere usate come valore dell'impostazione LogSeverity :

Costante SQLSRV (intero equivalente tra parentesi) Descrizione
SQLSRV_LOG_SEVERITY_ALL (-1) Specifica la registrazione di errori, avvisi e notifiche.
SQLSRV_LOG_SEVERITY_ERROR (1) Specifica la registrazione degli errori.
SQLSRV_LOG_SEVERITY_NOTICE (4) Specifica la registrazione delle notifiche.
SQLSRV_LOG_SEVERITY_WARNING (2) Specifica la registrazione degli avvisi.

Costanti di ammissione dei valori Null

Nella tabella seguente sono elencate le costanti che è possibile usare per determinare se una colonna ammette i valori Null o se queste informazioni non sono disponibili. È possibile confrontare il valore della chiave Nullable restituita da sqlsrv_field_metadata per determinare se la colonna ammette valori Null.

Costante SQLSRV (intero equivalente tra parentesi) Descrizione
SQLSRV_NULLABLE_YES (0) La colonna ammette i valori Null.
SQLSRV_NULLABLE_NO (1) La colonna non ammette i valori Null.
SQLSRV_NULLABLE_UNKNOWN (2) Non è noto se la colonna ammette i valori Null.

Costanti PARAM

Di seguito sono elencate le costanti che specificano la direzione dei parametri quando si chiama sqlsrv_query o sqlsrv_prepare.

Costante SQLSRV Descrizione
SQLSRV_PARAM_IN Indica un parametro di input.
SQLSRV_PARAM_INOUT Indica un parametro bidirezionale.
SQLSRV_PARAM_OUT Indica un parametro di output.

Costanti PHPTYPE

Nella tabella seguente sono elencate le costanti che vengono usate per descrivere i tipi di dati PHP. Per informazioni sui tipi di dati PHP, vedere Tipi PHP.

Costante SQLSRV Tipo di dati PHP
SQLSRV_PHPTYPE_INT Intero
SQLSRV_PHPTYPE_DATETIME Datetime
SQLSRV_PHPTYPE_FLOAT Float
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) String
  1. SQLSRV_PHPTYPE_STREAM e SQLSRV_PHPTYPE_STRING accettano un parametro che specifica la codifica del flusso. Nella tabella seguente sono elencate le costanti SQLSRV che sono parametri accettabili e viene fornita una descrizione della codifica corrispondente.
Costante SQLSRV Descrizione
SQLSRV_ENC_BINARY I dati vengono restituiti come flusso di byte non elaborati proveniente dal server senza alcuna codifica o conversione.
SQLSRV_ENC_CHAR 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.

Si tratta della codifica predefinita.
"UTF-8" I dati vengono restituiti nel formato di codifica UTF-8. Questa costante è stata aggiunta nella versione 1.1 dei driver Microsoft per PHP per SQL Server. Per altre informazioni sul supporto UTF-8, vedere Procedura: Invio e recupero di dati UTF-8 con il supporto incorporato di UTF-8.

Nota

Quando si usa SQLSRV_PHPTYPE_STREAM oppure SQLSRV_PHPTYPE_STRING, è necessario specificare la codifica. Se non viene fornito alcun parametro, verrà restituito un errore.

Per altre informazioni su queste costanti, vedere Procedura: Specificare i tipi di dati PHP, Procedura: Recupero di dati di tipo carattere come flusso usando il driver SQLSRV.

Costanti SQLTYPE

Nella tabella seguente sono elencate le costanti che vengono usate per descrivere i tipi di dati di SQL Server. Alcune costanti sono simili a funzioni e possono accettare parametri che corrispondono a precisione, scala e lunghezza. Quando si associano i parametri, è necessario usare le costanti simili a funzioni. Per i confronti dei tipi, sono obbligatorie le costanti standard (non simili a funzioni). Per informazioni sui tipi di dati SQL Server, vedere Tipi di dati (Transact-SQL). Per informazioni sulla precisione, la scala e la lunghezza, vedere Precisione, scala e lunghezza (Transact-SQL).

Costante SQLSRV Tipo di dati di SQL Server
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binary
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE date4
SQLSRV_SQLTYPE_DATETIME datetime
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL decimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) decimal
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE image1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY money
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC numeric5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) numeric
SQLSRV_SQLTYPE_NVARCHAR nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) nvarchar
SQLSRV_SQLTYPE_NVARCHAR('max') nvarchar(MAX)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL real
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT smallint
SQLSRV_SQLTYPE_SMALLMONEY smallmoney
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME time4
SQLSRV_SQLTYPE_TIMESTAMP timestamp
SQLSRV_SQLTYPE_TINYINT tinyint
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER uniqueidentifier
SQLSRV_SQLTYPE_UDT UDT
SQLSRV_SQLTYPE_VARBINARY varbinary5
SQLSRV_SQLTYPE_VARBINARY($byteCount) varbinary
SQLSRV_SQLTYPE_VARBINARY('max') varbinary(MAX)
SQLSRV_SQLTYPE_VARCHAR varchar5
SQLSRV_SQLTYPE_VARCHAR($charCount) varchar
SQLSRV_SQLTYPE_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML xml
  1. Si tratta di un tipo legacy che esegue il mapping al tipo varbinary(max).

  2. Si tratta di un tipo legacy che esegue il mapping al nuovo tipo nvarchar.

  3. Si tratta di un tipo legacy che esegue il mapping al nuovo tipo varchar.

  4. Il supporto per questo tipo è stato aggiunto nella versione 1.1 dei driver Microsoft per PHP per SQL Server.

  5. Queste costanti devono essere usate nelle operazioni di confronto dei tipi e non sostituiscono le costanti simili a funzioni con una sintassi simile. Per l'associazione dei parametri, è necessario usare le costanti simili a funzioni.

Nella tabella seguente sono elencate le costanti SQLTYPE che accettano parametri e l'intervallo di valori consentito per il parametro.

SQLTYPE Parametro Intervallo consentito per il parametro
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR
charCount 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR
charCount 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
byteCount 1 - 8000
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
precisione 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
scala 1 - precisione

Costanti del livello di isolamento delle transazioni

La chiave TransactionIsolation usata con sqlsrv_connectaccetta una delle costanti seguenti:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Costanti di cursore e scorrimento

Le seguenti costanti specificano il tipo di cursore che è possibile usare in un set di risultati:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Le seguenti costanti specificano la riga da selezionare nel set di risultati:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Per informazioni sull'uso delle costanti, vedere Specifying a Cursor Type and Selecting Rows.

Vedi anche

Riferimento all'API del driver SQLSRV