Conexão PHP - Oracle sem o Client?!?!
Revirei minha cabeça quando precisei criar uma solução web em php para um banco oracle, e não tinha em meu servidor o client do oracle, que pensava ser necessário para uma conexão com o servidor.Acabei (não foi por acaso, tive que pesquisar muito mesmo) descobrindo uma forma de conexão, sem a necessidade do client instalado em meu servidor apache e sim, somente, lógico, no servidor oracle.
A pesquisa foi árdua e resolvi publicar para dividir com quem mais procura este tipo de solução. Primeiro me pareceu um bicho de sete cabeças mas depois vi que é muito mais simples.
Segue o código:
$user = "XXX"; // Nome de usuário do banco de dados $pass = "XXX"; // Senha do banco de dados $host = "XXX"; // Host onde se encontra o banco Oracle $port = "XXX"; // Porta que é liberada para conectar ao banco $servico = "XXX"; // Servico do banco de dados que será acessado, configurado no client. $db = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port)))(CONNECT_DATA = (SERVICE_NAME = $servico)))"; $conn = OCILogon($user,$pass,$db) or die ("Não foi possível conectar no banco de dados");
Esta conexão exige que você tenha um client com o serviço configurado no Net Configuration Assistant.
Os resultados vieram tranquilamente para mim, tudo depende de como for configurado o Net Configuration.