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.

Tags desta matéria

Deixe sua opnião