Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/11/2011, 13:23
usuario_13
 
Fecha de Ingreso: febrero-2009
Mensajes: 27
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Conexion base de datos oracle 10g con XAMPP y PHP 5

buenas tardes, logre solucionar el problema de conexion que tenia pero me genero otro (aunque no es tan grave). voy a explicar lo que hice para poder lograr la conexion y despues les planteo el nuevo problema para ver si me pueden ayudar.

1.- instale la ultima version del XAMPP disponible (xampp-win32-1.7.7-VC9-installer) que se descarga de la pagina oficial

2.- tengo instalado el cliente oracle version 6 y aqui estaba el problema. lei en un foro que la extension OCI8 solo funciona si el cliente oracle es superior a 8.1. para corregir este problema descargue de la pagina de oracle el instant client 10g y remplace 6 archivos en el directorio donde tenia instalado el cliente de oracle, basicamente el directorio bin (C:\orant\bin), estos archivos son: oci.dll, ociw32.dll, orannzsbb10.dll, oraociei10.dll, oraocci10.dll, ocijdbc10.dll. tambien adicione en la carpeta system32 (C:\windows\system32) el siguiente archivo: msvcr71.dll puesto que llego un momento de la configuracion donde me dio un mensaje de error que decia que ese archivo no se encontraba

3.- quite el comentario de la linea extension=php_oci8.dll en el php.ini (quite el ;) ese archivo esta en C:\xampp\php

4.- descargue la libreria adodb para realizar la conexion y cree la siguiente clase en php:

<?php
$session = session_id();
//Incluir la clase que hace permite conexión a Oracle
include "adodb/adodb.inc.php";

//Crear Conexión:
$DB = ADONewConnection('oci8');
$DB->connectSID = true;

//Datos de conexion
$ip_servidor ="<DIRECCION IP DEL SERVIDOR>";
//Sí Php y Oracle están en la misma máquina usar 127.0.0.1
//en caso contrario incluir la ip del servidor oracle
$user ="<USUARIO>";
$password ="<CLAVE>";
$sid ="<SID>";
//el SID se encuentra en el archivo TNSNAME.ORA en el directorio del cliente - net80 - admin (en mi caso: C:\orant\net80\admin)


//Conexion
$conexion=$DB->PConnect($ip_servidor, $user, $password, $sid);
echo "conexion--->$conexion";
//Sí se establece la conexión el resultado es 1
?>

esta clase que llame prueba.php la guarde en una carpeta llamada prueba tambien dentro del directorio C:\xampp\htdocs y junto con ella la carpeta llamada adodb que mencione arriba que descargue y listo.

me conecto a la base de datos oracle cuando inicio el xampp control panel e inicio el servicio apache, abro un navegador y al escribir localhost\prueba\prueba.php me muestra con exito la conexion.

ahora por alguna extraña razon puedo acceder a la base de datos desde el sqlplus pero no desde el toad

me da un mensaje de error que dice:
ora-12154 tns no se ha podido resolver el nombre del servicio (<NOMBRE DE LA BD>)

no tengo ni idea que altero del toad para que ahora no pueda conectarme desde ese gestor (particularmente pienso que es el mas completo para base de datos oracle) si pueden ayudarme con ese error por favor háganlo saber. saludos