Publicidade

Entre para seguir isso  
Seguidores 0
asacap1000

Conexão com o Banco Oracle usando PHP

Patrocínio:

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar PDO..

0

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
0

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

Editado por webdevbr
0

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

0

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

Editado por Fernando C
0

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

0

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

Editado por Fernando C
0

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

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0