Jump to content
Sign in to follow this  
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()

 

 

Share this post


Link to post
Share on other sites

tenta usar PDO..

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by webdevbr

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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..

Edited by Fernando C

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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..

Edited by Fernando C

Share this post


Link to post
Share on other 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
?>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.