Costanti (driver Microsoft per PHP per SQL Server)
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 |
- 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) | decimale |
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 |
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 nuovo tipo nvarchar.
Si tratta di un tipo legacy che esegue il mapping al nuovo tipo varchar.
Il supporto per questo tipo è stato aggiunto nella versione 1.1 dei driver Microsoft per PHP per SQL Server.
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.