Constantes (Drivers da Microsoft para PHP para SQL Server)

Baixar o driver PHP

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
  1. 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
  1. Esse é um tipo herdado que é mapeado para o tipo varbinary(max).

  2. Esse é um tipo herdado que é mapeado para o tipo nvarchar mais recente.

  3. Esse é um tipo herdado que é mapeado para o tipo varchar mais recente.

  4. Foi adicionado suporte para esse tipo na versão 1.1 dos Drivers da Microsoft para PHP para SQL Server.

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

Consulte Também

Referência da API do driver SQLSRV