Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2011, 09:02
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
[APORTE] Configurar PDO con OCI en window

Saludos,

Estaba conectando un servidor con una base de datos oracle externa al servidor y pude lograr conectarlo de la siguiente forma
  • Instalar instantclient http://www.oracle.com/technetwork/da...ex-097480.html
  • Extraes el directorio de instantclient y lo colocas donde quieras en el servidor
  • Vas a Enviroment Variables y en el PATH añades la ruta completa donde hayas añadido el directorio de instantclient
  • Si no funciona el instalar instantclient puedes instalar http://www.oracle.com/technetwork/da...ads/index.html (recomiendo el 11.2 por la versión 11.1 indican y por experiencia no se puede conectar con base de datos 10.x o menores)
  • En el archivo de php solo tienes que hacer algo como
    Código PHP:
    Ver original
    1. $oci = new PDO('oci:dbname=
    2.     (DESCRIPTION =
    3.         (ADDRESS =
    4.             (PROTOCOL = TCP)
    5.             (HOST = XXX.XXX.XXX.XXX)
    6.             (PORT = AQUI_VA_EL_PUERTO)
    7.         )
    8.         (CONNECT_DATA =
    9.             (SERVICE_NAME = AQUI_VA_EL_SERVICE_NAME)
    10.         )
    11.     )',
    12.     'USER',
    13.     'PASS'
    14. );
    15.  
    16. // o
    17. // El puerto no es necesario si usas el que viene por defecto 1521
    18. $oci = new PDO('oci:dbname=//XXX.XXX.XXX.XXX:AQUI_VA_EL_PUERTO/AQUI_VA_EL_SERVICE_NAME', 'USER', 'PASS');

Tomé esta idea de http://www.php.net/manual/es/functio...ect.php#105284
Luego vi esta http://www.php.net/manual/es/ref.pdo-oci.php#64756 junto con http://www.php.net/manual/es/ref.pdo-oci.php#80881

Las varias formas que traté fueron y no me resultaron
Código PHP:
Ver original
  1. $oci = new PDO('oci:dbname=DATABASE;', 'USER', 'PASS');
  2. $oci = new PDO('odbc:DATABASE', 'USER', 'PASS');
  3. $oci = new PDO('DRIVER={Oracle ODBC Driver}; DSN=DATABASE', 'USER', 'PASS');

Espero que libre a varios de dolores de cabeza...
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 04/11/2011 a las 09:07