Ir para conteúdo

POWERED BY:

Arquivado

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

Aclaudios

PHP e SyBase... Um mistério!!!

Recommended Posts

Olá pessoal,

 

Estou precisando ter acesso ao banco de dados SyBase através do PHP usando as seguintes configurações:

 

- PHP 5.1.4

- Microsoft Internet Information Services 5 (IIS 5)

- SyBase 12.53

 

Para habilitar as funções de conexão e manipulação de dados do SyBase no PHP é necessário instalar as extensões Sybase no PHP, as quais são fornecidas, jutamente com outras extensões, pelo site oficial do PHP, mas este processo está sendo complicado e não achei solução adequada nem mesmo no Google.

 

Adianto que as seguintes modificações foram feitas no php.ini, segundo o que compreendi de algumas instruções:

 

extension_dir = ".;C:\PHP\ext"

Pasta onde reside a biblioteca php_sybase_ct.dll

 

extension=php_sybase_ct.dll

Nome da biblioteca a ser carregada para dar suporte ao SyBase

 

Quando uma página PHP é acessada no Browser, mesmo que no código fonte não haja instruções PHP e se houvessem, elas executariam normalmente, a seguinte mensagem é exibida:

 

PHP Warning: PHP Startup: Unable to load dynamic library '.;C:\PHP\ext\php_sybase_ct.dll' - The specified module could not be found. in Unknown on line 0

 

O caminho está correto e já foi comprovado que o path mostrado na mensagem de erro é montado segundo as configurações do php.ini.

 

Outro fato estranho: Tentei registrar manualmente (pois talvez este fosse o problema), mas o regsvr32 mostra uma mensagem dizendo que o módulo não foi encontrado (not found), mesmo que eu tenha copiado o php_sybase_ct.dll para System32 e executado o comando lá mesmo.

 

Fico grato se alguém puder sugerir uma solução para isso, pois estou precisando acessar o SyBase pelo PHP e estes são os fatos:

 

- O PHP não acha, nem carrega o php_sybase_ct.dll especificado no php.ini, mesmo que o path esteja comprovadamente correto.

- Parece-me que é necessário informar também as DLLs do próprio SyBase, mas não sei como fazer isso.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

extension_dir = ".;C:\PHP\ext"

Pasta onde reside a biblioteca php_sybase_ct.dll

PHP Warning: PHP Startup: Unable to load dynamic library '.;C:\PHP\ext\php_sybase_ct.dll' - The specified module could not be found. in Unknown on line 0

Aparentemente você não pode especificar 2 diretórios no extension_dir, pelo menos não da maneira como você fez, separando-os por ponto-e-vírgula. O PHP procurou a DLL em um diretório bastante esquisito (em negrito, note o .; antes do caminho) e, por motivos óbvios, não a encontrou.

Mude seu extension_dir para:

extension_dir = "C:\PHP\ext"

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

extension_dir = ".;C:\PHP\ext"

Pasta onde reside a biblioteca php_sybase_ct.dll

PHP Warning: PHP Startup: Unable to load dynamic library '.;C:\PHP\ext\php_sybase_ct.dll' - The specified module could not be found. in Unknown on line 0

Aparentemente você não pode especificar 2 diretórios no extension_dir, pelo menos não da maneira como você fez, separando-os por ponto-e-vírgula. O PHP procurou a DLL em um diretório bastante esquisito (em negrito, note o .; antes do caminho) e, por motivos óbvios, não a encontrou.

Mude seu extension_dir para:

extension_dir = "C:\PHP\ext"

 

Providenciei a tirada do ".;" do caminho, e como prova de que o php está usando esta definição, eis a resposta dele no browser:

 

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_sybase_ct.dll' - The specified module could not be found. in Unknown on line 0

 

Ele uniu extension_dir + extension pra formar o caminho mostrado que existe e se executar essa linha de comando, por exemplo, na barra de endereços do explorer ele encontra o arquivo. Mas o PHP neste caso e o regsrv32 dizem que não encontram isso.

 

Valeu pela dica, vai ver que é, no fim das contas, um pequeno detalhe como esse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara, não tenho experiência com PHP no windows, mas tente mudar para:extension_dir = "C:/PHP/ext"Acho q o PHP fica meio confuso com essas barras "\" que o windows usa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara, não tenho experiência com PHP no windows, mas tente mudar para:

extension_dir = "C:/PHP/ext"

 

Acho q o PHP fica meio confuso com essas barras "\" que o windows usa.

Os arquivos DLL que existem na pasta ext são extensões para casos específicos, php_sybase_ct.dll é apenas um deles. A documentação do PHP deixa claro isso, os demais arquivos lá existentes são para outros casos, oracle etc... é tanto que só precisei descomentar a linha desta DLL.

 

Quanto à / do path, também mudei e não resultou em nada animador:

 

;;;;;;;;;;;;;;;;;;;;;;;;;

; Paths and Directories ;

;;;;;;;;;;;;;;;;;;;;;;;;;

 

; UNIX: "/path1:/path2"

;include_path = ".:/php/includes"

;

; Windows: "\path1;\path2"

;include_path = "c:\php\includes"

 

É o trecho do PHP.INI onde mostra exemplos de especificações de paths no Unix e Windows.

 

PHP Warning: PHP Startup: Unable to load dynamic library 'C:/PHP/ext\php_sybase_ct.dll' - The specified module could not be found. in Unknown on line 0

 

Só acrescentando que acerca desta resposta "php startup unable to load..." etc, vi no site oficial do php uma página que não tenho certeza ainda, mas sugere algum bug no php...

 

Obrigado a todos, a discussão continua...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu não tenho certeza, mas o client do Sybase não precisa ser instalado?

A documentação fala algo sobre necessitar apontar para as dll clientes do Sybase, só que não diz onde nem como. Tudo o que eu vejo se resume ao que já está exposto aqui.

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.