Partilhar via


Constantes (Drivers da Microsoft para PHP para SQL Server)

Descarregar o driver PHP

Este tópico discute as constantes definidas pelos Microsoft Drivers para PHP para SQL Server.

PDO_SQLSRV Constantes do Driver

As constantes listadas no site do PDO são válidas nos Microsoft Drivers for PHP para SQL Server.

O seguinte descreve as constantes específicas da Microsoft no driver PDO_SQLSRV.

Constantes de Nível de Isolamento da Transação

A chave TransactionIsolation , 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 mais informações sobre a chave TransactionIsolation , consulte Opções de Ligação.

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 Description
PDO::SQLSRV_ENCODING_BINARY Os dados são um fluxo de bytes bruto do servidor sem realizar codificação ou traduçã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ódigos do local Windows definida no sistema. Quaisquer caracteres de vários bytes ou caracteres que não correspondam a esta página de código são substituídos por um carácter de ponto de interrogação de um byte (?).
PDO::SQLSRV_ENCODING_UTF8 Os dados estão na codificação UTF-8. Esta é a codificação padrão.
PDO::SQLSRV_ENCODING_DEFAULT Usa PDO::SQLSRV_ENCODING_SYSTEM se especificado durante a ligação.

Utilize a codificação da conexão, se especificada numa instrução de preparação.

Tempo Limite de Consulta de Dados

O atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT é qualquer inteiro não negativo que representa o período de timeout, em segundos. Zero (0) é o padrão e significa que não há tempo morto.

Pode especificar o atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT com PDOStatement::setAttribute, PDO::setAttribute e PDO::prepare.

Execução Direta ou Preparada

Pode selecionar execução direta de consulta 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 mais informações sobre PDO::SQLSRV_ATTR_DIRECT_QUERY, consulte Execução Direta de Instruções e Execução de Instruções Preparadas no Driver PDO_SQLSRV.

Tratamento de Buscas Numéricas

O atributo PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE pode ser usado para lidar com buscas numéricas de colunas com tipos SQL numéricos (bit, integer, smallint, tinyint, float e real). Quando PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE está definido como verdadeiro, os resultados de uma coluna inteira são representados como ints, enquanto floats SQL e reais são representados como floats. Este atributo pode ser definido com PDOStatement::setAttribute.

Pode modificar o comportamento de formatação decimal padrão com os atributos PDO::SQLSRV_ATTR_FORMAT_DECIMALS e PDO::SQLSRV_ATTR_DECIMAL_PLACES. O comportamento destes atributos é idêntico ao das opções correspondentes do lado SQLSRV (FormatDecimals e DecimalPlaces), exceto que os parâmetros de saída não são suportados para formatação. Estes atributos podem ser definidos ao nível da ligação ou da instrução com PDO::setAttribute ou PDOStatement::setAttribute, mas qualquer atributo da instrução irá sobrepor-se ao correspondente atributo de conexão. Para mais detalhes, consulte Formatação de Cadeias Decimais e Valores de Dinheiro (PDO_SQLSRV Driver).

Gestão de Buscas de Data e Hora

O PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE especifica se deve recuperar os tipos de data e hora como objetos PHP DateTime . Se forem deixados falsos, o comportamento padrão é devolvê-los como strings. Este atributo pode ser definido ao nível da ligação ou da instrução com PDO::setAttribute ou PDOStatement::setAttribute, mas o atributo da instrução sobrepor-se-á ao correspondente atributo connection. Para mais informações, veja Como: Recuperar Tipos de Data e Hora como Objetos PHP DateTime usando o PDO_SQLSRV Driver.

Constantes do Driver SQLSRV

As secções seguintes listam as constantes usadas pelo driver SQLSRV.

Constantes ERR

A tabela seguinte lista as constantes que são usadas para especificar se sqlsrv_errors devolve erros, avisos ou ambos.

Valor Description
SQLSRV_ERR_ALL Erros e avisos gerados na última chamada de função sqlsrv são retornados. Este é o valor padrão.
SQLSRV_ERR_ERRORS Os erros gerados na última chamada de função sqlsrv são devolvidos.
SQLSRV_ERR_WARNINGS Os avisos gerados na última chamada de função sqlsrv são devolvidos.

Constantes FETCH

A tabela seguinte lista as constantes que são usadas para especificar o tipo de array devolvido por sqlsrv_fetch_array.

Constante SQLSRV Description
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array devolve a próxima linha de dados como um array associativo.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array devolve a próxima linha de dados como um array com chaves numéricas e associativas. Este é o valor padrão.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array devolve a próxima linha de dados como um array indexado numericamente.

Constantes de registo

Esta secção lista as constantes que são usadas para alterar as definições de registo com sqlsrv_configure. Para mais informações sobre atividade de registo, consulte Atividade de Registo.

A tabela seguinte lista as constantes que podem ser usadas como valor para a definição LogSubsystems :

Constante SQLSRV (equivalente inteiro entre parênteses) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Ativa o registo de todos os subsistemas.
SQLSRV_LOG_SYSTEM_CONN (2) Ativa o registo da atividade de ligação.
SQLSRV_LOG_SYSTEM_INIT (1) Ativa o registo da atividade de inicialização.
SQLSRV_LOG_SYSTEM_OFF (0) Desativa o registo de atividades.
SQLSRV_LOG_SYSTEM_STMT (4) Ativa o registo da atividade das instruções SQL.
SQLSRV_LOG_SYSTEM_UTIL (8) Ativa o registo da atividade das funções de erro (como handle_error e handle_warning).

A tabela seguinte lista as constantes que podem ser usadas como valor para a definição LogSeverity :

Constante SQLSRV (equivalente inteiro entre parênteses) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Especifica que erros, avisos e notificações serão registados.
SQLSRV_LOG_SEVERITY_ERROR (1) Especifica que os erros serão registados.
SQLSRV_LOG_SEVERITY_NOTICE (4) Especifica que os avisos serão registados.
SQLSRV_LOG_SEVERITY_WARNING (2) Especifica que os avisos serão registados.

Constantes anuláveis

A tabela seguinte lista as constantes que pode usar para determinar se uma coluna é anulável ou se essa informação não está disponível. Pode comparar o valor da chave Nullable que é devolvida por sqlsrv_field_metadata para determinar o estado nulável da coluna.

Constante SQLSRV (equivalente inteiro entre parênteses) Description
SQLSRV_NULLABLE_YES (0) A coluna é anulável.
SQLSRV_NULLABLE_NO (1) A coluna não é anulável.
SQLSRV_NULLABLE_UNKNOWN (2) Não se sabe se a coluna é anulável.

Constantes PARAM

A lista seguinte contém as constantes para especificar a direção do parâmetro quando chama sqlsrv_query ou sqlsrv_prepare.

Constante SQLSRV Description
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 seguinte lista as constantes que são usadas para descrever os tipos de dados PHP. Para informações sobre os tipos de dados PHP, consulte Tipos PHP.

Constante SQLSRV Tipo de dados PHP
SQLSRV_PHPTYPE_INT Número inteiro
SQLSRV_PHPTYPE_DATETIME Data e hora
SQLSRV_PHPTYPE_FLOAT Flutuar
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) Cordão
  1. SQLSRV_PHPTYPE_STREAM e SQLSRV_PHPTYPE_STRING aceitam um parâmetro que especifica a codificação do fluxo. A tabela seguinte contém as constantes SQLSRV que são parâmetros aceitáveis e uma descrição da codificação correspondente.
Constante SQLSRV Description
SQLSRV_ENC_BINARY Os dados são devolvidos como um fluxo bruto de bytes do servidor sem realizar codificação ou tradução.
SQLSRV_ENC_CHAR Os dados são devolvidos em caracteres de 8 bits, conforme especificado na página de códigos da localidade do Windows definida no sistema. Quaisquer caracteres de vários bytes ou caracteres que não correspondam a esta página de código são substituídos por um carácter de ponto de interrogação de um byte (?).

Esta é a codificação padrão.
"UTF-8" Os dados são devolvidos na codificação UTF-8. Esta constante foi adicionada na versão 1.1 dos Microsoft Drivers for PHP para SQL Server. Para mais informações sobre o suporte ao UTF-8, veja Como: Enviar e Recuperar Dados do UTF-8 Usando Built-In Suporte ao UTF-8.

Observação

Quando usas SQLSRV_PHPTYPE_STREAM ou SQLSRV_PHPTYPE_STRING, a codificação deve ser especificada. Se não for fornecido nenhum parâmetro, será devolvido um erro.

Para mais informações sobre estas constantes, veja Como: Especificar Tipos de Dados PHP, Como: Recuperar Dados de Caracteres como um Fluxo Usando o Driver SQLSRV.

Constantes SQLTYPE

A tabela seguinte lista as constantes usadas para descrever os tipos de dados do SQL Server. Algumas constantes são semelhantes a funções e podem assumir parâmetros que correspondem à precisão, escala e/ou comprimento. Ao ligar parâmetros, devem ser usadas constantes semelhantes a funções. Para comparações de tipos, são necessárias as constantes padrão (não funcionais). Para informações sobre tipos de dados SQL Server, consulte Tipos de Dados (Transact-SQL). Para informações sobre precisão, escala e comprimento, veja Precisão, Escala e Comprimento (Transact-SQL).

Constante SQLSRV Tipo de dados do SQL Server
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binário
SQLSRV_SQLTYPE_BIT pouco
SQLSRV_SQLTYPE_CHAR Char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE Data4
SQLSRV_SQLTYPE_DATETIME datetime
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL Decimal 5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) decimal
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE Imagem1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY dinheiro
SQLSRV_SQLTYPE_NCHAR nchar 5
SQLSRV_SQLTYPE_NCHAR($charCount) Nchar
SQLSRV_SQLTYPE_NUMERIC numérico 5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) numérico
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 dinheiro miúdo
SQLSRV_SQLTYPE_TEXT Texto3
SQLSRV_SQLTYPE_TIME Tempo4
SQLSRV_SQLTYPE_TIMESTAMP carimbo de data/hora
SQLSRV_SQLTYPE_TINYINT tinyint
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER uniqueidentifier
SQLSRV_SQLTYPE_UDT UDT
SQLSRV_SQLTYPE_VARBINARY Varbinary5
SQLSRV_SQLTYPE_VARBINARY($byteCount) varbinary
SQLSRV_SQLTYPE_VARBINARY('máximo') varbinary(MAX)
SQLSRV_SQLTYPE_VARCHAR Varchar5
SQLSRV_SQLTYPE_VARCHAR($charCount) Varchar
SQLSRV_SQLTYPE_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML XML
  1. Este é um tipo legado que corresponde ao tipo varbinary(max).

  2. Este é um tipo legado que corresponde ao tipo mais recente de nvarchar.

  3. Este é um tipo legado que corresponde ao tipo varchar mais recente.

  4. O suporte para este tipo foi adicionado na versão 1.1 dos Microsoft Drivers para PHP para SQL Server.

  5. Estas constantes devem ser usadas em operações de comparação de tipos e não substituem constantes semelhantes a funções por sintaxe semelhante. Para parâmetros de ligação, deve usar constantes semelhantes a funciones.

A tabela seguinte lista as constantes SQLTYPE que aceitam parâmetros e o intervalo de valores permitidos 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
ajustar 1 - precisão

Constantes de Nível de Isolamento da 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 deslocamento

As seguintes constantes especificam o tipo de cursor que pode usar num conjunto de resultados:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

As seguintes constantes especificam qual linha selecionar no conjunto de resultados:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Para informações sobre a utilização destas constantes, veja Especificar um Tipo de Cursor e Selecionar Linhas.

Ver também

Referência da API do Driver SQLSRV