Conectando-se ao MS SQL Server através do PHP

Função mssql_connect( )

Veja abaixo um exemplo de como se conectar a um banco de dados Microsoft SQL Server através da sua aplicação PHP, listando todos os dados da consulta e efetuando contagem dos registros, utilizando a funçãomssql_connect( ). A mesma está habilitada em servidores Windows 2003:

Arquivo: mssql.php

<? // Dados do banco $dbhost   = "hostbanco";   #Nome do host $db       = "nomebanco";   #Nome do banco de dados $user     = "nomeusuario"; #Nome do usuário $password = "senhabase";   #Senha do usuário  // Dados da tabela $tabela = "nometabela";    #Nome da tabela $campo1 = "campo1tabela";  #Nome do campo da tabela $campo2 = "campo2tabela";  #Nome de outro campo da tabela  @mssql_connect($dbhost,$user,$password) or die("Não foi possível a conexão com o servidor!"); @mssql_select_db("$db") or die("Não foi possível selecionar o banco de dados!");   $instrucaoSQL = "SELECT $campo1, $campo2 FROM $tabela ORDER BY $campo1"; $consulta = mssql_query($instrucaoSQL); $numRegistros = mssql_num_rows($consulta);   echo "Esta tabela contém $numRegistros registros!/n<hr>/n";   if ($numRegistros!=0) {  while ($cadaLinha = mssql_fetch_array($consulta)) {   echo "$cadaLinha[$campo1] - $cadaLinha[$campo2]/n<br>/n";  } } ?>

Função sqlsrv_connect( )

Neste outro exemplo é mostrado um script de conexão utilizando a função sqlsrv_connect( ). A mesma está habilitada em servidores Windows 2008:

Arquivo: sqlsrv.php

<? // Dados do banco $dbhost   = "hostbanco";   #Nome do host $db       = "nomebanco";   #Nome do banco de dados $user     = "nomeusuario"; #Nome do usuário $password = "senhabase";   #Senha do usuário   // Dados da tabela $tabela = "nometabela";    #Nome da tabela $campo1 = "campo1tabela";  #Nome do campo da tabela $campo2 = "campo2tabela";  #Nome de outro campo da tabela  $conninfo = array("Database" => $db, "UID" => $user, "PWD" => $password); $conn = sqlsrv_connect($dbhost, $conninfo);   $instrucaoSQL = "SELECT $campo1, $campo2 FROM $tabela ORDER BY $campo1";   $params = array(); $options =array("Scrollable" => SQLSRV_CURSOR_KEYSET); $consulta = sqlsrv_query($conn, $instrucaoSQL, $params, $options); $numRegistros = sqlsrv_num_rows($consulta);   echo "Esta tabela contém $numRegistros registros!/n<hr>/n";   if ($numRegistros!=0) {  while ($cadaLinha = sqlsrv_fetch_array($consulta, SQLSRV_FETCH_ASSOC)) {   echo "$cadaLinha[$campo1] - $cadaLinha[$campo2]/n<br>/n";  } } ?>

Provider SQLOLEDB

Neste outro exemplo é mostrado um script de conexão utilizando o Provider SQLOLEDB:

Arquivo: PDO_SQLOLEDB.php

<? // Dados do banco $dbhost   = "hostbanco";   #Nome do host $db       = "nomebanco";   #Nome do banco de dados $user     = "nomeusuario"; #Nome do usuário $password = "senhabase";   #Senha do usuário  // Dados da tabela $tabela = "nometabela";    #Nome da tabela $campo1 = "campo1tabela";  #Nome do campo da tabela  $conn = new COM ("ADODB.Connection") or die("Nâo foi possível carregar o ADO"); $connStr = "PROVIDER=SQLOLEDB;SERVER=".$dbhost.";UID=".$user.";PWD=".$password.";DATABASE=".$db; $conn->open($connStr);   $instrucaoSQL = "SELECT $campo1 FROM $tabela"; $rs = $conn->execute($instrucaoSQL);   $num_columns = $rs->Fields->Count(); echo "Foi mostrada $num_columns coluna da presente tabela.". "<br><br>";   for ($i=0; $i < $num_columns; $i++) {  $fld[$i] = $rs->Fields($i); }   echo "<table>";   while (!$rs->EOF) {  echo "<td>";  for ($i=0; $i < $num_columns; $i++)  {   echo "<td>" . $fld[$i]->value . "</td>";  }  echo "</td>";  $rs->MoveNext(); }   echo "</table>";   $rs->Close(); $conn->Close();   $rs = null; $conn = null; ?>

</source>

PDO(PHP Data Objects) com SQL Server

Neste exemplo é mostrado um script de conexão utilizando PDO(PHP Data Objects). Lembrando que este exemplo funciona na versão 5.2 do PHP. Para utilização em servidores Windows 2008, há de alterar a versão do php via web.config tendo em vista que a versão padrão em windows 2008 é a PHP 5.3:

Arquivo: PDO_SQLserver.php

<?php try {     $hostname = "sqlserver01.bancodedados.com";     $dbname = "nomebanco";     $username = "nomebanco";     $pw = "senha";     $pdo = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");   } catch (PDOException $e) {     echo "Erro de Conexão " . $e->getMessage() . "/n";     exit;   }       $query = $pdo->prepare("select Coluna FROM nome_tabela");       $query->execute();         for($i=0; $row = $query->fetch(); $i++){         echo $i." - ".$row['Coluna']."<br/>";       }         unset($pdo);        unset($query); ?>

Atenção: O código mencionado acima é somente um exemplo. Caso haja dúvidas quanto sua utilização, sugerimos que verifique juntamente a um desenvolvedor de sua confiança.

Veja também