Constantes (Drivers da Microsoft para PHP para SQL Server)
Este tópico discute as constantes definidas pelos Drivers da Microsoft para PHP para SQL Server.
Constantes do driver PDO_SQLSRV
As constantes listadas no site de PDO são válidas nos Drivers da Microsoft para PHP para SQL Server.
A seguir está a descrição das constantes específicas da Microsoft no driver PDO_SQLSRV.
Constantes de nível de isolamento de transação
A chave TransactionIsolation , que é usada com PDO::__construct, aceita uma das seguintes constantes:
PDO::SQLSRV_TXN_READ_UNCOMMITTED
PDO::SQLSRV_TXN_READ_COMMITTED
PDO::SQLSRV_TXN_REPEATABLE_READ
PDO::SQLSRV_TXN_SNAPSHOT
PDO::SQLSRV_TXN_SERIALIZABLE
Para obter mais informações sobre a chave TransactionIsolation , consulte Connection Options.
Constantes de codificação
O atributo PDO::SQLSRV_ATTR_ENCODING pode ser passado para PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.
Os valores disponíveis para passar para PDO::SQLSRV_ATTR_ENCODING são
Constante do driver PDO_SQLSRV | Descrição |
---|---|
PDO::SQLSRV_ENCODING_BINARY | Os dados são um fluxo de bytes brutos do servidor sem realizar a codificação ou a conversão. Não é válido para PDO::setAttribute. |
PDO::SQLSRV_ENCODING_SYSTEM | Os dados são caracteres de 8 bits conforme especificado na página de código da localidade do Windows definida no sistema. Todos os caracteres multibyte ou caracteres não mapeados nessa página de código são substituídos por um caractere de ponto de interrogação (?) de byte único. |
PDO::SQLSRV_ENCODING_UTF8 | Os dados estão na codificação UTF-8. Essa é a codificação padrão. |
PDO::SQLSRV_ENCODING_DEFAULT | Usa PDO::SQLSRV_ENCODING_SYSTEM se especificado durante a conexão. Use a codificação da conexão se for especificado em uma instrução prepare. |
Tempo Limite da Consulta
O atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT é qualquer inteiro não negativo que representa o período limite, em segundos. Zero (0) é o padrão e significa sem tempo limite.
Você pode especificar o atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT com PDOStatement::setAttribute, PDO::setAttribute e PDO::prepare.
Execução direta ou preparada
Você pode selecionar a execução de consulta direta ou execução de instrução preparada com o atributo PDO::SQLSRV_ATTR_DIRECT_QUERY. PDO::SQLSRV_ATTR_DIRECT_QUERY pode ser definido com PDO::prepare ou PDO::setAttribute. Para obter mais informações sobre PDO::SQLSRV_ATTR_DIRECT_QUERY, veja Execução de instrução direta e execução de instrução preparada no driver PDO_SQLSRV.
Lidando com buscas numéricas
O atributo PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE pode ser usado para manipular buscas numéricas de colunas com tipos SQL numéricos (bit, integer, smallint, tinyint, float e real). Quando PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE é definido como true, os resultados de uma coluna do tipo integer são representados como ints, enquanto valores do SQL dos tipos float e real são representados como floats. Este atributo pode ser definido com PDOStatement::setAttribute.
Você pode modificar o comportamento padrão de formatação de decimais com os atributos PDO::SQLSRV_ATTR_FORMAT_DECIMALS e PDO::SQLSRV_ATTR_DECIMAL_PLACES. O comportamento desses atributos é idêntico às opções correspondentes no lado do SQLSRV (FormatDecimals e DecimalPlaces), exceto pelo fato de que o uso de parâmetros de saída para formatação não é compatível. Esses atributos podem ser definidos no nível da conexão ou da instrução, com PDO::setAttribute ou PDOStatement::setAttribute, mas qualquer atributo de instrução substituirá o atributo de conexão correspondente. Para saber mais, confira Formatação de cadeias de caracteres decimais e valores monetários (driver PDO_SQLSRV) .
Como processar buscas de data e hora
O PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE Especifica quando recuperar tipos de data e hora como objetos DateTime do PHP. Se for deixado como false, o comportamento padrão será retorná-los como cadeias de caracteres. Esse atributo podem ser definidos no nível da conexão ou da instrução, com PDO::setAttribute ou PDOStatement::setAttribute, mas o atributo de instrução substituirá o atributo de conexão correspondente. Para obter mais informações, confira Como recuperar tipos de data e hora como objetos DateTime PHP usando o driver PDO_SQLSRV.
SQLSRV
As seções a seguir listam as constantes usadas pelo driver SQLSRV.
Constantes ERR
A tabela a seguir lista as constantes usadas para especificar se sqlsrv_errors retorna erros, avisos ou ambos.
Valor | Descrição |
---|---|
SQLSRV_ERR_ALL | Retorna erros e avisos gerados na última chamada da função sqlsrv . Esse é o valor padrão. |
SQLSRV_ERR_ERRORS | Retorna erros gerados na última chamada da função sqlsrv . |
SQLSRV_ERR_WARNINGS | Retorna avisos gerados na última chamada da função sqlsrv . |
Constantes FETCH
A tabela a seguir lista as constantes usadas para especificar o tipo de matriz retornada por sqlsrv_fetch_array.
Constante SQLSRV | Descrição |
---|---|
SQLSRV_FETCH_ASSOC | sqlsrv_fetch_array retorna a próxima linha de dados como matriz associativa. |
SQLSRV_FETCH_BOTH | sqlsrv_fetch_array retorna a próxima linha de dados como matriz com as chaves numéricas e associativas. Esse é o valor padrão. |
SQLSRV_FETCH_NUMERIC | sqlsrv_fetch_array retorna a próxima linha de dados como matriz numericamente indexada. |
Constantes de registro em log
Esta seção lista as constantes usadas para alterar as configurações de registro em log com sqlsrv_configure. Para obter mais informações sobre o registro de atividades em log, consulte Logging Activity.
A tabela a seguir apresenta as constantes que podem ser usadas como o valor para a configuração LogSubsystems :
Constante SQLSRV (inteiro equivalente entre parênteses) | Descrição |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) | Ativa o registro em log de todos os subsistemas. |
SQLSRV_LOG_SYSTEM_CONN (2) | Ativa o registro em log da atividade de conexão. |
SQLSRV_LOG_SYSTEM_INIT (1) | Ativa o registro em log da atividade de inicialização. |
SQLSRV_LOG_SYSTEM_OFF (0) | Desativa o registro em log. |
SQLSRV_LOG_SYSTEM_STMT (4) | Ativa o registro em log da atividade de instrução. |
SQLSRV_LOG_SYSTEM_UTIL (8) | Ativa o registro em log da atividade de funções de erro (como handle_error e handle_warning). |
A tabela a seguir apresenta as constantes que podem ser usadas como o valor para a configuração LogSeverity :
Constante SQLSRV (inteiro equivalente entre parênteses) | Descrição |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) | Especifica que erros, avisos e notificações serão registrados em log. |
SQLSRV_LOG_SEVERITY_ERROR (1) | Especifica que os erros serão registrados em log. |
SQLSRV_LOG_SEVERITY_NOTICE (4) | Especifica que as notificações serão registradas em log. |
SQLSRV_LOG_SEVERITY_WARNING (2) | Especifica que os avisos serão registrados em log. |
Constantes que permitem valor nulo
A tabela a seguir lista as constantes que você pode usar para determinar se uma coluna permite ou não valor nulo ou se essas informações não estão disponíveis. Você pode comparar o valor da chave Nullable retornada por sqlsrv_field_metadata para determinar o status da coluna que permite valor nulo.
Constante SQLSRV (inteiro equivalente entre parênteses) | Descrição |
---|---|
SQLSRV_NULLABLE_YES (0) | A coluna permite valor nulo. |
SQLSRV_NULLABLE_NO (1) | A coluna não permite valor nulo. |
SQLSRV_NULLABLE_UNKNOWN (2) | Não se sabe se a coluna permite valor nulo. |
Constantes PARAM
A lista a seguir contém as constantes para especificar a direção do parâmetro ao chamar sqlsrv_query ou sqlsrv_prepare.
Constante SQLSRV | Descrição |
---|---|
SQLSRV_PARAM_IN | Indica um parâmetro de entrada. |
SQLSRV_PARAM_INOUT | Indica um parâmetro bidirecional. |
SQLSRV_PARAM_OUT | Indica um parâmetro de saída. |
Constantes PHPTYPE
A tabela a seguir apresenta as constantes usadas para descrever tipos de dados do PHP. Para obter informações sobre tipos de dados do PHP, veja Tipos do PHP.
Constante SQLSRV | Tipo de dados do PHP |
---|---|
SQLSRV_PHPTYPE_INT | Integer |
SQLSRV_PHPTYPE_DATETIME | Datetime |
SQLSRV_PHPTYPE_FLOAT | Float |
SQLSRV_PHPTYPE_STREAM($encoding1) | Fluxo |
SQLSRV_PHPTYPE_STRING($encoding1) | String |
- SQLSRV_PHPTYPE_STREAM e SQLSRV_PHPTYPE_STRING aceitam um parâmetro que especifica a codificação do fluxo. A tabela a seguir contém as constantes SQLSRV que são parâmetros aceitáveis e uma descrição da codificação correspondente.
Constante SQLSRV | Descrição |
---|---|
SQLSRV_ENC_BINARY | Os dados são retornados do servidor como um fluxo de bytes brutos, sem codificação ou conversão. |
SQLSRV_ENC_CHAR | Os dados são retornados em caracteres de 8 bits conforme especificado na página de código da localidade do Windows definida no sistema. Todos os caracteres multibyte ou caracteres não mapeados nessa página de código são substituídos por um caractere de ponto de interrogação (?) de byte único. Essa é a codificação padrão. |
"UTF-8" | Os dados são retornados na codificação UTF-8. Esta constante foi adicionada na versão 1.1 dos Drivers da Microsoft para PHP para SQL Server. Para obter mais informações sobre o suporte a UTF-8, veja Como enviar e recuperar dados UTF-8 usando o suporte interno a UTF-8. |
Observação
Quando você usa SQLSRV_PHPTYPE_STREAM ou SQLSRV_PHPTYPE_STRING, a codificação deve ser especificada. Se nenhum parâmetro for fornecido, um erro será retornado.
Para obter mais informações sobre essas constantes, consulte Como especificar tipos de dados do PHP, Como recuperar dados de caractere como um fluxo usando o driver SQLSRV.
Constantes SQLTYPE
A tabela a seguir apresenta as constantes usadas para descrever tipos de dados do SQL Server. Algumas constantes são semelhantes a funções e podem usar parâmetros correspondentes a precisão, escala e/ou comprimento. Ao associar parâmetros, deve-se usar as constantes semelhantes a funções. Para comparações de tipo, as constantes padrão (não semelhantes a funções) são necessárias. Para obter informações sobre SQL Server tipos de dados, confira Tipos de Dados (Transact-SQL). Para obter informações sobre precisão, escala e comprimento, confira Precisão, Escala e Comprimento (Transact-SQL).
Constante SQLSRV | Tipo de dados do 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 |
Esse é um tipo herdado que é mapeado para o tipo varbinary(max).
Esse é um tipo herdado que é mapeado para o tipo nvarchar mais recente.
Esse é um tipo herdado que é mapeado para o tipo varchar mais recente.
Foi adicionado suporte para esse tipo na versão 1.1 dos Drivers da Microsoft para PHP para SQL Server.
Essas constantes devem ser usadas em operações de comparação de tipos e não substituem as constantes similares a funções com sintaxe semelhante. Ao associar parâmetros, deve-se usar as constantes semelhantes a funções.
A tabela a seguir lista as constantes SQLTYPE que aceitam parâmetros e o intervalo de valores permitido para o parâmetro.
SQLTYPE | Parâmetro | Intervalo permitido para o parâmetro |
---|---|---|
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 |
precisão | 1 - 38 |
SQLSRV_SQLTYPE_DECIMAL, SQLSRV_SQLTYPE_NUMERIC |
scale | 1 - precisão |
Constantes de nível de isolamento de transação
A chave TransactionIsolation , que é usada com sqlsrv_connect, aceita uma das seguintes constantes:
SQLSRV_TXN_READ_UNCOMMITTED
SQLSRV_TXN_READ_COMMITTED
SQLSRV_TXN_REPEATABLE_READ
SQLSRV_TXN_SNAPSHOT
SQLSRV_TXN_SERIALIZABLE
Cursor e constantes de rolagem
As constantes a seguir especificam o tipo de cursor que pode ser usado em um conjunto de resultados:
SQLSRV_CURSOR_FORWARD
SQLSRV_CURSOR_STATIC
SQLSRV_CURSOR_DYNAMIC
SQLSRV_CURSOR_KEYSET
SQLSRV_CURSOR_CLIENT_BUFFERED
As seguintes constantes especificam quais linhas selecionar no conjunto de resultados:
SQLSRV_SCROLL_NEXT
SQLSRV_SCROLL_PRIOR
SQLSRV_SCROLL_FIRST
SQLSRV_SCROLL_LAST
SQLSRV_SCROLL_ABSOLUTE
SQLSRV_SCROLL_RELATIVE
Para obter informações sobre como usar essas constantes, consulte Specifying a Cursor Type and Selecting Rows.