Ir para conteúdo

Arquivado

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

asacap1000

Conexão com o Banco Oracle usando PHP

Recommended Posts

Olá galera, já pesquisei de tudo e mais um pouco porém não consigo efetuar a conexão com o banco de dados utilizando PHP.

 

Preciso criar algumas telas de consultas porém a conexão não sai de jeito algum, em todas as conexões dão erro, já ajustei as informações no php.ini, já baixei novamente as dlls para ver se resolvia, já reinstalei o wampp, mas nada. Será que alguem poderia me dar uma força?

Sempre aparece este erro Fatal error: Call to undefined function oci_connect()

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar PDO..

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar PDO.

Neste caso utilizei esta configuração, poderia ver se está correto,

<?php

 

$user = "usuario_bd"; $pass = "senha_usuario_bd"; $name = "nome_bd"; $host = "192.168.208.16";

 

$tns = " (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = ".$host.")(PORT = 1521)))(CONNECT_DATA = (SID = ".$name.")))";

 

try

{

$conn = new PDO("oci:dbname=".$tns,$user,$pass);

//echo 'conectado -> '.date('H:i:s');

 

foreach($conn->query('"select TYP_DOC, NR_DI, COD_CONHEC, STAT_NAC from DESMEMBR WHERE NR_DI = '1315478880'"') as $row)

{

print_r($row);

}

 

}catch(PDOException $e)

{

echo ($e->getMessage());

}

 

 

?>

 

Fiz desta forma porém deu erro de driver o que preciso ativar, no php.ini

 

Estou com estes recursos ativados no php.ini,

 

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
extension=php_mbstring.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8.dll
extension=php_oracle.dll
;;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que ativar no php.ini o driver pdo_oci.cll e tem que ter o dll, ve se voce possui o arquivo do driver...

 

Na verdade, oci com PHP não da muito certo, por isso usamos MySQL ou PostGre (Sqlite as vezes tbm)

 

Acho que a extensão do PDO_oci só está disponivel para linux, e o OCI8 (oci_connect,etc) precisa ser compilado junto com o PHP (tambem no linux..)

http://www.php.net/manual/pt_BR/oci8.setup.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Driver ativado e dll ok, Será que tem algum drive habilitado que possa entrar em conflito?

Ainda está dando o mesmo erro.



Verifiquei no phpinfo e ele não aparece habilitado apenas mysql, odbc, sqlite

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha,, como vc não postou as versões dos sistemas, fica meio complicado, enfim:

 

Driver ativado e dll ok

 

não.. se o oracle é o 11g, vc deve ativar essa aqui:

 

;;extension=php_oci8_11g.dll

 

isso sem PDO;

e falando em PDO, verifique se ativou a extensão PDO, senão n rola mesmo...

 

bom, aqui tem mais algumas dicas (exemplo de conexão, consulta..):

http://forum.imasters.com.br/topic/518006-select-oracle/#entry2059161

inclusive 1 link p/ 1 pdf bem legal..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show de bola as postagens e já estou analisando, porém como solicitado segue configuração, Windows 7 64bits.

  • Apache Version :2.2.22
  • PHP Version :5.3.13
  • MySQL Version :5.5.24

Realizei todas as configurações que obtive mas não vai, peguei outra versão do Wampp realizei as ativações tudo mas nada.

 

Poderiam me explicar como compilar o php.ini, Olhei estas informações mas não consegui entender.

 

E se tiverem mais algumas sugestões para testarmos ficarei extremamente agradecido.

 

 

Galera se precisar de mais informações é só pedir aí, fico no aguardo se alguem puder me ajudar, valewww

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo... 1º ponto: supondo q que esteja usando o 11g,
habilitou as extensões PDO e oci8_11g.dll?

verifique se essas extensões estão ativas..

qto ao windows, infelizmente minha versão é diferente (ultimate 7 32)..

1 dica: verifique se estão ativos os serviços do Oracle..
esses normalmente "caem" quando se desliga o windows...

ah, verifique tb se o Apache não esta usando a porta 8080,

normalmente é essa mesma usada pelo Oracle, ai da pau tb..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera blz, depois de muito tempo consegui realizar a conexão,

 

Tive que instalar o wampserver2.1, depois de instalar os client do oracle. Ai sim habilitou as ferramentas, daí para realizar a conexão utilizei este script já realizando a consulta.

Tenho uma nova pergunta porém vou finalizar esta e abrir uma nova.

<?php

$connect = ocilogon("user","pass","banco");    
//Conexão ao banco de dados    

$stmt = ociparse($connect,"SELECT (STAT_NAC) AS STATUS,(TYP_DOC)TIPODOC,(NR_DI) NUMERO_DOC,(COD_CONHEC) AS CONHECIMENTO,(TIME_LIBER_DI) AS LIBERACAO,
(DUCT) AS CANAL FROM DESMEMBR WHERE TYP_DOC = 'DI'");  
  
//Passamos o pedido a ser efetuado, sem esquecer de passar a sequência de conexão no parâmetro "ociresult"

ociexecute($stmt,OCI_DEFAULT);    
//Executamos o pedido passando a opção OCI_DEFAULT 
  
echo "<br>\n\n";    
     
while (ocifetch($stmt)){ //Percorremos os resultados  
  echo "TYP_DOC: ".ociresult($stmt,2) .""; //Recuperamos o primeiro campo da minha_tabela 
  echo ociresult($stmt,3) . "<td>\n"; //Recuperamos o segundo campo da minha_tabela 
  echo ociresult($stmt,4) . "<td>\n"; //Recuperamos o primeiro campo da minha_tabela 
  echo ociresult($stmt,5) . "<td>\n"; //Recuperamos o primeiro campo da minha_tabela  
  echo ociresult($stmt,1) . "<td>\n"; //Recuperamos o primeiro campo da minha_tabela  
  echo ociresult($stmt,6) . "<td>\n"; //Recuperamos o primeiro campo da minha_tabela
  echo "<br>";    
     
} 
         
echo "<br>";    
ocilogoff($connect);    
//Nos deconectamos do servidor
?>

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.