A conexão ao Microsoft SQL Server via PHP pode ser feita de diferentes maneiras, dependendo da versão do PHP e das extensões habilitadas.
O antigo conector mssql_*
foi removido nas versões mais recentes do PHP, sendo substituído pelo SQLSRV (Windows) ou PDO/ODBC (Windows/Linux).
A seguir, um exemplo de conexão utilizando PDO (compatível com PHP moderno):
<?php
// Dados de conexão
$host = "hostbanco"; // Endereço do servidor SQL Server
$db = "nomebanco"; // Nome do banco de dados
$user = "nomeusuario"; // Usuário do banco
$password = "senhabase"; // Senha do usuário
$tabela = "nometabela"; // Nome da tabela
$campo1 = "campo1tabela"; // Nome do primeiro campo
$campo2 = "campo2tabela"; // Nome do segundo campo
try {
// Conexão usando PDO com driver SQL Server (sqlsrv)
$dsn = "sqlsrv:Server=$host;Database=$db";
$conn = new PDO($dsn, $user, $password);
// Define o modo de erro para exceções
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Monta e executa a consulta
$sql = "SELECT $campo1, $campo2 FROM $tabela ORDER BY $campo1";
$stmt = $conn->query($sql);
// Obtém e exibe os resultados
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row[$campo1] . " - " . $row[$campo2] . "<br>";
}
} catch (PDOException $e) {
echo "Erro na conexão: " . $e->getMessage();
}
?>
Observações importantes:
- Extensão necessária:
- Windows: habilitar
php_sqlsrv.dll
nophp.ini
. - Linux: instalar
pdo_sqlsrv
ou usar conexão viaODBC
.
- Windows: habilitar
- Versões antigas do PHP: Se estiver usando PHP < 7.0, é possível utilizar o antigo
mssql_connect
, mas não é recomendado por questões de segurança e suporte. - Sempre utilize tratamento de erros e prepared statements para evitar SQL Injection.
AVISO LEGAL: Os procedimentos descritos neste documento devem ser executados de acordo com o contexto de cada sistema, de forma a evitar impactos negativos à segurança, disponibilidade, integridade e privacidade de dados. A CentralServer se reserva o direito de modificar a qualquer tempo e sem aviso prévio as informações aqui apresentadas a fim de refletir o lançamento de novos serviços, atualizações físicas e operacionais, e evolução do estado-da-arte da tecnologia.