PHP Conference Nagoya 2025

Funções do Microsoft SQL Server (PDO_SQLSRV)

Introdução

PDO_SQLSRV é um driver que implementa a interface aos Objetos de Dados PHP (PDO) para permitir acesso do PHP a bancos de dados MS SQL Server (iniciando com o SQL Server 2005) e SQL Azure.

Instalação

A versão mais recente do driver está disponível aqui: » SQLSRV. O código-fonte do driver está hospedado em um » repositório público.

Para mais informações sobre requisitos do sistema, consulte » Requisitos de Sistema para o SQLSRV.

No Windows, a extensão PDO_SQLSRV é habilitado pela adição dos arquivos DLL apropriados ao diretório de extensões do PHP e da entrada correspondente no arquivo php.ini.

No Linux e no macOS, a extensão PDO_SQLSRV pode ser instalada usando o » PECL. Consulte o » tutorial de instalação para detalhes.

Constantes predefinidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
Essa constante é um valor aceitável para a chave TransactionIsolation do DSN SQLSRV. Esta constante define o nível de isolamento da transação para a conexão como Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (int)
Essa constante é um valor aceitável para a chave TransactionIsolation do DSN SQLSRV. Esta constante define o nível de isolamento da transação para a conexão como Leitura Confirmada.
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
Essa constante é um valor aceitável para a chave TransactionIsolation do DSN SQLSRV. Esta constante define o nível de isolamento da transação para a conexão como Leitura Repetível.
PDO::SQLSRV_TXN_SNAPSHOT (int)
Essa constante é um valor aceitável para a chave TransactionIsolation do DSN SQLSRV. Esta constante define o nível de isolamento da transação para a conexão como Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (int)
Essa constante é um valor aceitável para a chave TransactionIsolation do DSN SQLSRV. Esta constante define o nível de isolamento da transação para a conexão como Serializável.
PDO::SQLSRV_ENCODING_BINARY (int)
Especifica que os dados são enviados/recuperados como um fluxo de bytes brutos de/para o servidor sem realizar codificação ou tradução. Essa constante pode ser passada para PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (int)
Especifica que os dados são enviados/recuperados de/para o servidor como caracteres de 8 bits, conforme especificado na página de código da localidade do Windows definida no sistema. Quaisquer caracteres multibyte ou caracteres que não sejam mapeados nesta página de códigos serão substituídos por um caractere de ponto de interrogação (?) de byte único. Essa constante pode ser passada para PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (int)
Especifica que os dados são enviados/recuperados de/para o servidor na codificação UTF-8. Esta é a codificação padrão. Essa constante pode ser passada para PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (int)
Especifica que os dados são enviados/recuperados de/para o servidor de acordo com PDO::SQLSRV_ENCODING_SYSTEM se especificado durante a conexão. A codificação da conexão é usada se especificada em uma instrução de preparação. Essa constante pode ser passada para PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn e PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (int)
Um número inteiro não negativo que representa o período de tempo limite, em segundos. Zero (0) é o padrão e significa que não há tempo limite. Essa constante pode ser passada para PDOStatement::setAttribute, PDO::setAttribute e PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (int)
Indica que uma instrução deve ser executada diretamente, sem estar preparada. Essa constante pode ser passada para PDO::setAttribute e PDO::prepare. Para obter mais informações, consulte » Execução de instrução direta e preparada.

Índice

  • PDO_SQLSRV DSN — Conectando-se aos bancos de dados MS SQL Server e SQL Azure
adicione uma nota

Notas Enviadas por Usuários (em inglês) 3 notes

up
13
Peter
9 years ago
SQLSRV 3.2 is now available from Microsoft that supports PHP 5.6

http://www.microsoft.com/en-us/download/details.aspx?id=20098
up
6
ian at helastel dot com
8 years ago
An updated driver compatible with both PHP 7.0 and Linux is available on the PHP-7.0-Linux branch of https://github.com/Microsoft/msphpsql/

This is more up to date and supports some additional features over the ODBC / DBLIB drivers.

It is currently considered an 'Early Technical Preview' and hence has some limitations, but in my experience it has been stable.
up
0
John P
9 years ago
As of 12/12/2014, Microsoft has officially released Version 3.1.

Support for 5.5 has 4 drivers
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll

Note: Version 3.1 now supports PHP 5.5 and requires Microsoft ODBC Driver 11 (or higher)

You can downlod the new driver from
http://www.microsoft.com/en-us/download/details.aspx?id=20098
To Top