Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

PHP com Oracle 11g

Boa tarde pessoal. Gostaria de comunicar uma aplicação PHP a um servidor oracle 11g, essa droga de oracle não funciona (por isso prefiro mysql e postgres).

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.72)(PORT = 1521)))(CONNECT_DATA=(SID=cad1m)))";

Em host estou colocando o ip da minha maquina onde esta instalado o servidor mas surgiu a duvida, quando acesso o painel do oracle aparece http://127.0.0.1:8080/apex/ entao sera que devo utilizar o 127.0.0.1 e essa porta ai ?

no connect_data devo passar o nome do meu banco ? (não entendo essa parte)

$this->conexao = oci_connect("usuario","senha",$db);

quando rodo a aplicação vem o erro Fatal error: Uncaught Error: Call to undefined function oci_connect() in C:\xampp\htdocs\mvc\libs\Database.php

Estou muito frustado com isso, no geral a conexão com mysql e bem simples $conexao = mysqli_connect("localhost", "root", "", "banco");

2 respostas

João, tudo bem ?

Cara a gente tem um curso aqui na plataforma que fala sobre PDO, que acho pode te ajudar nesse tipo de coisa, ele já tem classes prontas para o auxilio da conexão.

Geralmente conectar no oracle em qualquer linguagem é mais chato mesmo, ele é bem burocrático :(

Tive o mesmo problema em java, ai recorri a velha e antiga documentação da jpa para poder realizar a conexão, não se assuste e nem fique chateado !

solução!

Olá João,

Não fiquei frustado, todos passamos por dificuldades! Deixa eu tentar te ajudar, vamos lá.

Este erro: Fatal error: Uncaught Error: Call to undefined function oci_connect() está indicando que o módulo oci8 do php não está habilitado.

Dentro do diretório do xampp deve haver um arquivo chamado php.ini. Neste arquivo você pode habilitar o módulo . Talvez seja necessário instalar o Oracle Instant Client antes de habilitar o módulo oci8.

Para cada instância rodando do Oracle é dado um SID que é um nome único para cada instância do Oracle sendo executada.

O connect_data serve para indicar em qual SID (ou instância) será realizada a conexão

Caso você tenha instalado a versão XE do Oracle, o sid provavelmente será XE ao invés de cad1m