Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PHDiniz

Extensão mssql não funciona no PHP 5

Recommended Posts

Pessoal, instalei o IIS 6 + PHP 5.2.1 e não consigo colocar o mssql pra funcionar.

Já verifiquei a linha no php.ini:

extension=php_mssql.dll

 

e está correta, segue meu php.ini:

 

http://pastebin.com/uwLUgsnd

 

Quando carrego uma página com MSSQL_CONNECT apresenta o seguinte erro:

 

PHP Fatal error: Call to undefined function mssql_connect() in C:\Inetpub\wwwroot\index.php on line 2

 

O estranho é que está configurado corretamente e o arquivo php_mssql.dll existe dentro da pasta C:\PHP\ext

 

:S

 

Alguém por favor me ajude!

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser que não tenha nada a ver e tenha sido só um erro de digitação, mas você ativou a extensão php_mssql.dll e disse que tem a a phpd_mssql.dll.

 

Mas já te aconselho a atualizar tua versão do PHP para pelo menos 5.3. Não adianta querer a mais recente porque infelizmenet ainda foge da realidade dos servidores brasileiros, mesmo que seja a mais recomendada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa, apareceu um D a mais ali... hehehe

Já corrigi, foi erro de digitação mesmo. :)

O arquivo é php_mssql.dll

 

Então Bruno, optei por essa versão (5.2.1) pq só consigo instalar o Zend Optimizer 3+ nela.

IIS 6 + FastCGI + PHP 5.3.x + Zend Optimizer 3.x não funciona ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria problema com o Zend Optimizer então? De repente não existe uma versão compatível com 5.3 ainda (mesmo que eu duvide).

 

Se você puder ficar sem, já é uma ajuda e tanto a virada de versão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior Breno, é que o site está criptografado com Zend e usa conexões mssql, eu poderia usar o tal AppServ (hehe), mas um simples DoS leva ele ao chão. =S

Já com o IIS não funciona assim, creio que ele filtre as conexões.

 

Estou usando o 5.2.1 pq o zend é compativel com ele, já virei 3 noites procurando o zend pra 5.3, e tudo que achei foi que não desenvolveram free, pra ter acesso ao zend pra 5.3 teria que comprar o zend core (se não me engano), por isso to usando o 5.2.1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não me engano, a partir do PHP 5 esse módulo foi desativado. O modulo para trabalho com o MSSql é o sqlsrv. você pode fazer o download dos drivers(dll) para trabalho com o sql server neste link: Download, fiquei uma semana tentando descobrir pq meu PHP 5.3 não funcionava com o SQL server, com esse driver funcionou.

 

Desculpe se falei alguma besteira! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior Breno, é que o site está criptografado com Zend e usa conexões mssql, eu poderia usar o tal AppServ (hehe), mas um simples DoS leva ele ao chão. =S

Já com o IIS não funciona assim, creio que ele filtre as conexões.

 

Estou usando o 5.2.1 pq o zend é compativel com ele, já virei 3 noites procurando o zend pra 5.3, e tudo que achei foi que não desenvolveram free, pra ter acesso ao zend pra 5.3 teria que comprar o zend core (se não me engano), por isso to usando o 5.2.1.

Ah! Não é possível. Tu é a segunda pessoa que me chama de Breno essa semana :lol:

 

Dá uma olhada se isso te ajuda nesse meio tempo.

 

Se não me engano, a partir do PHP 5 esse módulo foi desativado. O modulo para trabalho com o MSSql é o sqlsrv. você pode fazer o download dos drivers(dll) para trabalho com o sql server neste link: Download, fiquei uma semana tentando descobrir pq meu PHP 5.3 não funcionava com o SQL server, com esse driver funcionou.

 

Desculpe se falei alguma besteira! rs

Pior é que eu tinha essa suspeita também. Mas como nunca usei esse banco, fiquei quietinho. ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Breno, uashushushusshauh

Te juro, a primeira vez que mencionei seu nome aqui no post eu quase escrevi BRENO tbm, há algo errado com seu nome no fórum.. kkkkk

 

Bruno, já tinha visualizado esse link que você me mandou antes, fiz do jeito que ta ai (claro, adaptando pra windows) e não rolou não =/

 

Vou fazer um teste no driver que o Fabio Accoroni informou, assim que terminar de testar volto aqui pra falar se funfou ou não.

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, também não deu certo não.

Instalei o driver em C:\PHP\EXT, coloquei o extension=php_sqlsvr_53_nts_vc9.dll no php.info, dei restart no IIS e testei o script. Nada, o erro sumiu e a tela só fica em branco.

 

Ai olhei a documentação e parece que tenho que mudar os mssql_connect para sqlsvr_connect, se realmente eu tiver que fazer isso, não resolve meu problema, pois o script está criptografado e não há como mudar isso.

 

 

=/

 

Acho que estou sem opções e sem saída :'(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem saída eu não diria. Se não existe MESMO a possibilidade de reverter a codificação, talvez adquirindo o source original, você poderia criar um arquivo PHP e incluí-lo logo antes da abertura do primeiro <?php

 

Esse arquivo nada mais seria que um conjunto de funções com os nomes das antigas do MSSQL que use as novas do SQL Server. Ex:

 

function mssql_connect( $nomedoservidor, $username, $password ) {

    return sqlsrv_connect( $nomedoservidor, array( $username, $password ) );
}

Mas antes disso, você testou se sua instalação "aceitou" a extensão? Tipo, pegou um arquivo de teste e usou a função antiga sobre uma base de dados / servidor existente?

 

Outra: Você tem MESMO que usar IIS? Sei lá, de repente não, né...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Breno... auhauahauh #parei.

Então Bruno, to com o SQL rodando com uma DB também, criei um teste.php e adicionei uma entrada pra conexão ao DB e no mesmo arquivo uma condição pra saber se conectou ou não, e apartir do mssql_* fica tudo em branco.

Preciso usar o IIS pq ele não cai com DoS, minha outra opção seria o AppServ, mas se alguém der um "teco" com DoS o bicho morre.

no PHPInfo não aparece nenhum mssql e nem sqlsvr =/

 

 

-------------------------------------------------------------

O que me deixa "encabulado" é que já vi "empresas" de hosting configurar IIS + PHP + Zend para clientes de VPS e Dedicados para clientes de jogos online (tipo MuOnline, Lineage...), onde funcionava corretamente. Agora não sei o que estou fazendo errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peraí, se não aparecem as extensões no PHPInfo então elas não estão sendo carregadas.

 

Faça um teste habilitando alguma extensão que veio com o seu PHP, sem ser baixada à parte e que por padrão é desabilitada (sei lá, acho que EXIF, por exemplo).

 

Habilita, salva o arquivo e reinicia o servidor. Se aparecer na lista, esse MSSQL ou SQLServer que você baixou não está funcionando.

 

Tem também alguma coisa a ver com extensões TS e NTS (Thread Safety), mas não sei a fundo o que representam, mas sei qe podem zicar uma extensão.

 

E vamos especulando, uma hora chegamos na resposta :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa nova extensão "SqlSrv" é para a versao 5.3 ou superior

 

você está usando a 5.2.1

 

para testar de forma mais segura, verifique no phpinfo() se a library foi carregada

 

info.php

<?php
phpinfo();
?>

 

 

lembrando que para trabalhar com o ms sql server usado o php precisa da library client chamada "ntwdblib.dll" que deve estar no folder system32..

você deve copiar para a pasta raiz de instalação do php

 

 

outra dica é, ativar todas as mensagens de erro, caso esteja executando no ambiente de desenvolvimento, ou configurar o registro dos logs de erros, que é o mais adequado para ambientes em produção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Hinom e Bruno, formatei o server e instalei tudo de novo, nova configuração:

 

- Windows Server 2003 x86

- IIS 6.0

- PHP 5.2.10 NTS

 

Agora o MSSQL ta rodando beleza, porém... o Zend Optimizer parou de funcionar, ou melhor, depois de formatar e reinstalar tudo ele não carregou :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Durante a instalação do Optimizer ele identificou seu IIS, você informou os diretório de instalação do PHP e do Servidor e tal tudo certinho?

 

Verifiou no PHPInfo se aparece Zend Optimizer naquela caixa cinza?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vi sim Bruno, lá informa Zend Optimizer 2.2

Mas a versão atualiza dele não consigo rodar =/

 

Caminho do php.ini:

- C:\PHP\php.ini

 

WebRoot:

- C:\Inetpub\wwwroot

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.