PHP para conectar ao Sql server [RESOLVIDO]

1. PHP para conectar ao Sql server [RESOLVIDO]

Cristiano Miguel da Costa
Cristiano_Be

(usa Ubuntu)

Enviado em 23/12/2013 - 10:00h

Tudo bem Pessoal!

Será que alguém pode me ajudar. Meu caso é o seguinte:

Estamos desenvolvendo um sistema de chat que grava dados em um banco de dados. Como a empresa já tem um programa que usa o banco de dados Sql server 2005 express, tivemos que aproveitar o mesmo sistema de banco de dados, impossibilitando o uso do Mysql.

Bom, nossa aplicação é Baseada em PHP. No inicio do desenvolvimento usamos um simulador para servidor web (xamp)rodando sobre o windows xp. Fizemos nossa aplicação em PHP e conseguimos conectar no sqlserver rodando a aplicação no simulador de servidor web com o PHP 5.1.6 e apache 2.0.54. Até ai sem problemas.

A dor de cabeça começou, quando montamos um servidor web real. Usamos a distro Ubuntu server 12.04, mais apache e PHP. Quando tentamos conectar no banco de dados, rodando a aplicação que desenvolvemos em cima desse servidor, não conseguimos. Neste servidor foi instalado o modulo php5_mssql e php5-sybase e configurado.

A função que estamos usando para conectar ao banco de dados e a mssql_connect abaixo.

<?php

$server = '192.168.0.0,1433';
$username = 'usuáriobanco';
$password = 'senhabaco';
$database = 'nomebanco';
$connection = mssql_connect($server, $username, $password);

if($connection != FALSE)
{
echo "Conectado ao servidor de banco de dados OK<br />";
}
else
{
die("Não foi possível conectar");
}

if(mssql_select_db($database, $connection))
{
echo "Selected $database ok<br />";
}
else
{
die('Falha ao selecionarDB');
}

$query_result = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($query_result);

if($row != FALSE)
{
echo "Versão é {$row[0]}<br />";
}
mssql_free_result($query_result);
mssql_close($connection);

O estranho é que quando usamos o xamp, nosso código funciona. Em cima do servidor real, já tentamos muitas dicas da internet e sem sucesso.

Será que o código está legal, será que tem outra função que posso usar para conectar ao banco de dados sqlserver? será que o meu servidor web ubuntu está faltando algum modulo do php?

Agradeço por qualquer ajuda que vier! Obrigado.


  


2. MELHOR RESPOSTA

Giovani
gczanatta

(usa Debian)

Enviado em 24/12/2013 - 17:50h

Eu tenho uma página que usa banco SQL, já tem um bom tempo mas acho que lembro como foi feito.

Foi instalado uma biblioteca freetds após instalar na pasta /etc/freetds tem um arquivo freetds.conf

O arquivo foi editado e incluido as configurações da base.

[BANCO_TELECOM]
host = 172.20.20.3
port = 2566
instance = SQLSERVER
tds version = 8.0
client charset = UTF-8

depois no arquiv php fez conexão conforme abaixo:

$UserGTC = "GTC_USER";
$PasswordGTC = "SENHA";
$DbGTC = "GTC_TARIFADOR_PRD";



$bancotarifador = mssql_connect("BANCO_TELECOM", $UserGTC, $PasswordGTC)
or die("Não foi possível conectar ao servidor de banco de dados do tarifador");

$seleciona = mssql_select_db($DbGTC, $bancotarifador)
or die("Não foi possível acessar a base $DbGTC");

Depois só executar o comando SQL necessário, só atenção na função utilizada deve ser a mssql_query()

$queryTELECOM = "SELECT CPF FROM RamalVirtual WHERE CPF = '$id' and Ativo <> 'Bloqueado'";
$resultadoTELECOM = mssql_query($queryTELECOM,$bancotelecom);



3. Re: PHP para conectar ao Sql server [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 23/12/2013 - 11:44h

Você já viu isto:
http://wiki.locaweb.com.br/pt-br/Conectando-se_ao_MS_SQL_Server_atrav%C3%A9s_do_PHP

Depende às vezes da versão do servidor.


4. Re: PHP para conectar ao Sql server [RESOLVIDO]

rodrigo peixoto
mostrarnanet

(usa Ubuntu)

Enviado em 21/01/2014 - 17:59h

Tenta com PDO, fica mais ou menos assim:


$db = new PDO("sqlsrv:Server=seuHost;Database=seuBanco", "Username", "Password");
$db->query("sua consulta");



5. Re: PHP para conectar ao Sql server [RESOLVIDO]

Cristiano Miguel da Costa
Cristiano_Be

(usa Ubuntu)

Enviado em 28/01/2014 - 17:32h

Pessoal,

Consegui fazer o PHP conectar no banco de dados sql server
Foi um coisa muito boba, mas gerou uma grande dor de cabeça. Graças a Deus agora está tudo ok.

A solução foi a seguinte:

Depois de intalado o Apache e o modulo php5_mssql e o php5-sybase tem que fazer uma configuração no arquivo /etc/freetds/fretds.conf

Aberto o arquivo, mais no final vamos ter:

# A typical Microsoft server
[servername]
host = 192.168.0.0
port = 1433
tds version = 7.0

host: ip do servidor que roda o sql server
Port: Porta usada pelo sql server
tds version: usei 7.0 mais tem gente que usa 8.0. Se alguem souber explicar esta parte, será de grande ajuda.


No linux o inicio do codigo sofre uma pequena mudança. No arquivo freetds.conf a conexão configurada para sql server recebe o nome de servername. Desta forma, no PHP é só mudar da seguinte forma:

<?php

$server = 'servername';
$username = 'usuáriobanco';
$password = 'senhabaco';
$database = 'nomebanco';
$connection = mssql_connect($server, $username, $password);

Obrigado a todos pela ajuda!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts