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
- $oci = new PDO('oci:dbname=
- (DESCRIPTION =
- (ADDRESS =
- (PROTOCOL = TCP)
- (HOST = XXX.XXX.XXX.XXX)
- (PORT = AQUI_VA_EL_PUERTO)
- )
- (CONNECT_DATA =
- (SERVICE_NAME = AQUI_VA_EL_SERVICE_NAME)
- )
- )',
- 'USER',
- 'PASS'
- );
- // o
- // El puerto no es necesario si usas el que viene por defecto 1521
- $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
$oci = new PDO('oci:dbname=DATABASE;', 'USER', 'PASS'); $oci = new PDO('odbc:DATABASE', 'USER', 'PASS'); $oci = new PDO('DRIVER={Oracle ODBC Driver}; DSN=DATABASE', 'USER', 'PASS');
Espero que libre a varios de dolores de cabeza...