Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Conexão com o Banco Oracle usando PHP

php oracle conexao oci_connect

Resolvido asacap1000, 24 abril 2014 - 08:04

Galera beleza, 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
?>

Ir para o post

  • Por favor, faça o login para responder
9 respostas neste tópico

#1 asacap1000

asacap1000
  • Membros
  • 62 posts

Postado 17 março 2014 - 13:40

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()

 

 


  • 0

#2 webdevbr

webdevbr

    SysAdm | Projects Idealizator & Developer

  • Membros
  • 219 posts

Postado 17 março 2014 - 13:50

tenta usar PDO..


  • 0

#3 asacap1000

asacap1000
  • Membros
  • 62 posts

Postado 17 março 2014 - 14:09

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

  • 0

#4 webdevbr

webdevbr

    SysAdm | Projects Idealizator & Developer

  • Membros
  • 219 posts

Postado 17 março 2014 - 14:12

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/m.../oci8.setup.php


Editado por webdevbr, 17 março 2014 - 14:18 .

  • 0

#5 asacap1000

asacap1000
  • Membros
  • 62 posts

Postado 17 março 2014 - 14:22

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


  • 0

#6 Fernando C

Fernando C
  • Membros
  • 948 posts

Postado 17 março 2014 - 15:19

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

 

Driver ativado e dll ok

 

não.. se o oracle é o 11g, você 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.imaster...e/#entry2059161

inclusive 1 link p/ 1 pdf bem legal..


Editado por Fernando C, 17 março 2014 - 15:20 .

  • 0

#7 asacap1000

asacap1000
  • Membros
  • 62 posts

Postado 18 março 2014 - 10:30

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
  • 0

#8 Fernando C

Fernando C
  • Membros
  • 948 posts

Postado 18 março 2014 - 17:50

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..
 


Editado por Fernando C, 18 março 2014 - 17:56 .

  • 0

#9 Carlos Coelho

Carlos Coelho

    Kuchiyose • Ninken

  • Moderadores
  • 2.308 posts

Postado 18 março 2014 - 18:05

:seta: Instalação do PHP e do Oracle Instant Client para Linux e Windows


  • 0

#10 asacap1000

asacap1000
  • Membros
  • 62 posts

Postado 24 abril 2014 - 08:04   Resolvido

Galera beleza, 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
?>


  • 0




Publicidade

/ins>