Conexão PHP com sql server

Enviada por marcos fabricio corso 
marcos fabricio corso
Conexão PHP com sql server
15 de February de 2012 às 08:33PM
boa noite pessoal

estou usando wamp server 2.2 com
apache 2.2.21
php 5.3.8
mysql 5.5.16
sql server 2008
windows 7 64 bits

já conectei com postgresl, mysql
agora falta o sql server

na minha classe de conexao
$conecta = mssql_connect( "localhost" , "usuario" , "senha" );
mssql_select_db("bancoTeste",$conecta);


ao executar dá erro
Fatal error: Call to undefined function mssql_connect()

buscando no google vi vários foruns, mas nenhum sem sucesso
meu php.ini JÁ está descomentado a linha 965
extension=php_mssql.dll

e na tela do phpinfo() também não aparece os dados referentes ao sql server
mas dos outros bancos de dados aparecem

o arquivo php_mssql.dll está na pasta C:\wamp\bin\php\php5.3.8\ext, com 49 kb
e os demais dados estão corretos

porque não conecta, alguma coisa a ver com windows 64 bits ou versão do php, li algo disso na web
Marcos Regis
Re: Conexão PHP com sql server
16 de February de 2012 às 02:30PM
Instalou o client MSSQL??
Onde e qual a versão do
ntwdblib.dll
marcos fabricio corso
Re: Conexão PHP com sql server
16 de February de 2012 às 06:45PM
não tenho essa dll no pc e não instalei o client do mssql ... onde acho para download o client mssql ? e a ntwdblib.dll ?

copiei uma php_mssql.dll de outro pc para a pasta ext do php e na hora de iniciar o wamp mostra a mensagem de erro não podendo iniciar o php_mssql.dll, não é um aplicativo win32 válido
Marcos Regis
Re: Conexão PHP com sql server
16 de February de 2012 às 07:20PM
Olhe estes tópicos e vê se lhe ajudam

http://phpbrasil.com/phorum/read.php?1,166377,166434#msg-166434

http://phpbrasil.com/phorum/read.php?1,167215,167564#msg-167564

http://phpbrasil.com/phorum/read.php?1,167215,167515#msg-167515
marcos fabricio corso
Re: Conexão PHP com sql server
17 de February de 2012 às 12:58PM
o problema é que nem carrega a php_mssql.dll
na hora de iniciar o wamp mostra a mensagem de erro não podendo iniciar o php_mssql.dll, não é um aplicativo win32 válido
Marcos Regis
Re: Conexão PHP com sql server
17 de February de 2012 às 01:49PM
Isso é típico de usar PHP + Apache 64 bits e usar a dll que só é válida para Windows 32 bits.

Tente sempre usar versões de 32 bits do Apache e do PHP.
marcos fabricio corso
Re: Conexão PHP com sql server
17 de February de 2012 às 04:38PM
onde eu encontro essas duas dll para download
ja baixei de varios sites e nenhuma funciona
Marcos Regis
Re: Conexão PHP com sql server
17 de February de 2012 às 05:11PM
Eu já vi muita gente reclamando que não encotra a ntwdblib.dll versao 64 bits e que ela nem vem junto com o MSSQL Express. Provavelmente ela só exista na instalação do MSSQL completo versão 64 bits.
Aconselho a não usar versões de software 64 bits pra trabalhar com PHP+Apache+MSSQL justamente para evitar este tipo de problema.

O PHP possui uma lib chamada mssql native client que não usa a ntwdblib.dll, porém a forma de conectar é diferente. Se estiver começando o projeto talvez seja vantagem para você usar esta biblioteca ao invés da extension php_msssql.dll.

Você pode tentar este link
http://www.microsoft.com/download/en/details.aspx?id=17308
Marcos Regis
Re: Conexão PHP com sql server
17 de February de 2012 às 05:19PM
Andei lendo alguns posts de um outro fórum e tem uma dica interessante.
Colocar a dll no diretório SysWOW64 ao invés de System32.
WOW64 = Windows32 on Windows 64
marcos fabricio corso
Re: Conexão PHP com sql server
22 de February de 2012 às 06:17PM
depois de muitos teste
agora cai no seguinte warning
apenas neste, carregando o wamp 2.0

PHP Startup: mssql: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match
Marcos Regis
Re: Conexão PHP com sql server
22 de February de 2012 às 06:35PM
Isso tem a ver com a versão do PHP. Você precisaria da dll compilada com a mesma versão de API do PHP que está usando. Uma saída seria recompilar a dll pelo source dela usando esse PHP do seu Wamp.
A mais fácil seria ir fazendo downgrande de seu PHP até que obtenha a API da ultima versão da dll em questão.
marcos fabricio corso
Re: Conexão PHP com sql server
22 de February de 2012 às 07:39PM
já fiz isso
baixeo o php 3.0, 4.0, 4.9, 5.0, 5.1, 5.2, 5.3, 5.4
dae eu copiei o php_mssql.dll para dentro da pasta php do wamp
e nenhuma delas funcionou
as vezes dava erro de versão, as vezes dava erro de outra dll (não a ntwdblib)
e nada de conectar no sql server

mas numa outra maquina aqui da empresa funciona o maldito (rsrrssrrssrsr)
Marcos Regis
Re: Conexão PHP com sql server
22 de February de 2012 às 08:08PM
A versão do PHP que você deve usar em ambiente Windows necessariamente deve ser:
+ Compilada com o debug mode em off
+ Compilada com o interpretador em modo multi-thread

Não use aquela versão com nts.
Dê preferencia por utilizar uma instalação livre desses pacotes WAMP, XAMP, easyPHP, etc.

Tente com estas versões.

http://windows.php.net/downloads/releases/archives/php-5.3.5-Win32-VC6-x86.msi
ou
http://windows.php.net/downloads/releases/archives/php-5.2.10-Win32-VC6-x86.msi
Leandro Marcelino
Re: Conexão PHP com sql server
27 de March de 2012 às 09:50PM
Boa noite,
Alguém conseguiu conectar no MSSQL, estou com o mesmo problema, tenho uma aplicação em Delphi que não tem muito relários e vou desenvolver alguns em PHP, mas o maior problema até o momento é conexão com o banco.
Os arquivos DLL devem ficar dentro de qual diretório?

Estou usando o Xampp versão 1.7.7.
Marcos Regis
Re: Conexão PHP com sql server
28 de March de 2012 às 09:28PM
Leandro, você leu e seguiu os tópicos que indiquei?

Lá diz qual dll usar e onde ela deve estar.

>>>>
A extensão requer que as ferramentas de cliente do MS SQL sejam instaladas no sistema onde o PHP esta instalado. As ferramentas de cliente podem ser instaladas apartir do CD do MS SQL Server ou copiando ntwdblib.dll de \winnt\system32 da máquina do servidor \winnt\system32 na máquina do PHP. Copiar ntwdblib.dll irá somente prover acesso através de named pipes.

Alguma versões da dll não funcionam com o PHP. faz uma busca com esse nome de dll que postei há algum tempo atrás um HOW TO de como instalar corretamente suporte a MSSQL.

>>>>>

Se for Windows 64 bits tem que usar a pasta \Windows\SysWOW64
marcos fabricio corso
Re: Conexão PHP com sql server
02 de April de 2012 às 07:01PM
olá pessoal
depois de muitas tentativas
consegui carregar a dll no php
estou usando wamp server 2.0 com apache 2.2.6, php 5.2.5, mysql 5.0.45
e sql server 2008
no phpinfo() aparece o mssql
meu codigo

<?php
// phpinfo();

LINHA 4 => $conecta = mssql_connect( "10.1.1.145\SQLEXPRESS2008" , "sa" , "111" ) or die("Erro ao conectar com o banco de dados");
mssql_select_db("MidiaDigital_Teste",$conecta) or die("Erro ao selecionar a base de dados");
$sql = " select * from tsMD_Cliente ; ";
$resultado = mssql_query($sql);
while($consulta = mssql_fetch_array($resultado)) {
echo 'ok' ;
}
mssql_close($conecta) or die("Erro ao desconectar com o banco de dados");

?>


na hora de executar da a mensagem

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 10.1.1.145\SQLEXPRESS2008 in C:\wamp\www\MidiaDigital\boleto\index.php on line 4
Erro ao conectar com o banco de dados
Marcos Regis
Re: Conexão PHP com sql server
02 de April de 2012 às 08:05PM
Verifique o firewall e se as conexões TCP estão habilitadas no SQL Server;
marcos fabricio corso
Re: Conexão PHP com sql server
03 de April de 2012 às 08:29PM
está desabilitado e tudo liberado
Marcos Regis
Re: Conexão PHP com sql server
03 de April de 2012 às 08:48PM
VocÊ consegue acessar através de outro software ou ODBC?

TEnte o seguinte

Abra o prompt de Comando
Digite
> telnet 10.1.1.145 1433

poste os resultados
marcos fabricio corso
Re: Conexão PHP com sql server
04 de April de 2012 às 11:59AM
estou no windows, nao existe o comando telnet
mas mesmo assim acesso o sql de outros softwares
e numa outra maquina com wamp eu acesso normalmente
Marcos Regis
Re: Conexão PHP com sql server
04 de April de 2012 às 06:14PM
Não tem TELNET no teu Windows? Como assim? É alguma versão HOME Edition? Porque todas as versõe que usei até hoje tinham o Telnet (inclusive o Windows 98)

Cara, se tem programa que da mesma máquina onde vocÊ está rodando o script acessa o
Banco, use as mesmas informações no PHP porque ele também tem que conectar.

Está praticamente tudo aí. Só parece haver algum problema de configuração.
marcos fabricio corso
Re: Conexão PHP com sql server
05 de April de 2012 às 11:49AM
não sei amigo
no meu windows 7 não tem o telnet
mas não vem o caso
o php não esta conectando com o mssql ainda ....
Marcos Regis
Re: Conexão PHP com sql server
05 de April de 2012 às 01:53PM
Quanto ao TELNET, http://www.blogsdna.com/4052/how-to-install-microsoft-telnet-client-on-windows-7.htm

Ele tem sim, apenas não está ativado.

Para o problema da falta de conexão, o problema parece ser apenas de configuração de conexão.
Tente com essa forma


$conecta = mssql_connect( '10.1.1.145\SQLEXPRESS2008,1433' , "sa" , "111" ) or die("Erro ao conectar com o banco de dados");
marcos fabricio corso
Re: Conexão PHP com sql server
09 de April de 2012 às 08:21PM
continua não funcionando ...

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 10.1.1.145\SQLEXPRESS2008,1433 in C:\wamp\www\MidiaDigital\boleto\include\comum.php on line 16
Erro ao conectar com o banco de dados
Marcos Regis
Re: Conexão PHP com sql server
10 de April de 2012 às 08:21PM
tente executar esse codigo.
if(!fsockopen("10.1.1.145", 1433, $errno, $errstr, 10))
die("Erro: (($errstr ($errno)))");
Herik
Re: Conexão PHP com sql server
11 de April de 2012 às 02:34PM
marcos fabricio corso

Quando vc disse que a linha di php.ini estava descomentada vc descomentou o arquivo errado.
Você tem que descomentar o arquivo php.ini que está na pasta bin do apache...

"buscando no google vi vários foruns, mas nenhum sem sucesso
meu php.ini JÁ está descomentado a linha 965
extension=php_mssql.dll

e na tela do phpinfo() também não aparece os dados referentes ao sql server
mas dos outros bancos de dados aparecem

o arquivo php_mssql.dll está na pasta C:\wamp\bin\php\php5.3.8\ext, com 49 kb
e os demais dados estão corretos"

Provavelmente deve ser o dominio C:\wamp\bin\apache\apache 2.2.21\bin\php.ini

Tente isso!
Marcos Regis
Re: Conexão PHP com sql server
11 de April de 2012 às 02:58PM
Herik, se prestar atenção verá que o erro é de conexão e não de extensão.
O que você disse não vale para este caso.
glauco ribeiro
Re: Conexão PHP com sql server
14 de April de 2012 às 05:03PM
Cara eu a tem a muito anos utilizo o mysql como base de dados, mas mudei de empresa e o servido de dados é um sql server 2008 com um easyphp instalado. Nao consegui de forma alguma abilitar os comandos do php_mssql.

Segue abaixo a solucao que encontrei para o mssql_connect:
//////////////////////CONEXAO BANCO DADOS//////////////////////////////////////////////////////////////////
$dbUser = "";
$dbPass = "";

$conn = 'Driver={SQL Server};Server=maersk-pc;DATABASE=inputcontrol;';//Maersk Producao
$connect = odbc_connect($conn, $dbUser, $dbPass)
or die("<br />-----------------------------------------------------------------------------<br />
<strong>ERROR: Nao e possivel se conectar ao banco, verifique o banco inputcontrol</strong><br />
-----------------------------------------------------------------------------");
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

Exemplo de uma query:
$sqlquery = "select * from tb_usuario where usuario_nome='$idlogin' and usuario_pw='$pwlogin'";
$res = odbc_exec($connect, $sqlquery);
while ($row = odbc_fetch_array($res)) {
$_SESSION['usuario'] = $row['usuario_nome'];
$_SESSION['tipo_usuario'] = $row['usuario_tipo'];
}
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.