Cómo conectar a una BD Oracle 10gXE en PHP (Windows)

Publicado por María Paulina Ramírez Vásquez jueves, 27 de noviembre de 2008 9:42 p. m.

Es muy común encontrar artículos en los cuales se trata el tema de conectar una base de datos MySQL con PHP. En este artículo quiero tocar el tema de conectar una base de datos Oracle con PHP, porque sé que a muchos (al igual que me pasó) les ha tocado enfrentarse con este tipo de casos y no encuentran ayuda precisa de cómo hacerlo y de manera rápida.

Espero con este artículo explicar de una manera fácil y rápida de conectarse con una base de datos Oracle (10g específicamente) y realizar una consulta sencilla. Para empezar, asumo que el servidor Apache y PHP están configurados correctamente. En mi caso, yo utilizo un programa llamado WAMP que nos facilita mucho la tarea de configurar un servidor web con PHP. Si deseas descargarlo, puedes hacerlo en esta dirección: http://www.wampserver.com/dl.php.

WAMP nos da la posibilidad de habilitar y desabilitar extensiones en el archivo php.ini. Para trabajar con Oracle 10g necesitamos la extensión oci8.dll. Puedes habilitarla manualmente o hacerlo directamente en el menú de WAMP:


Ícono de WAMP en la bandeja del sistema

Menú de WAMP, indicando dónde se gestionan las extensiones de PHP

Habilitando la extensión oci8

Ya habilitada la extensión oci8 en PHP, automáticamente WAMP reinicia el servidor para que los cambios tengan efecto.

Luego vamos a las propiedades del sistema (Panel de control -> Sistema) y configuramos las variables de entorno:

Cuando pulsamos en variables de entorno, aparecerá una ventana en la cual agregaremos dos nuevas variables de entorno:


  • La primera variable tendrá como nombre ORACLE_SID y como valor le pondremos XE.
  • La segunda variable que creemos, tendrá como nombre ORACLE_HOME y como valor le pondremos C:\oraclexe\app\oracle\product\10.2.0\server (o en su defecto, el directorio de instalación de Oracle).
Ya hecho lo anterior, deberían aparecer dos nuevas variables dentro de las variables del sistema, así:

Ahora lo que sigue es reiniciar Windows (una vez hecho esto, no es necesario volverlo a hacer), y después proseguimos a realizar nuestro código en PHP para conectar a la base de datos que está en Oracle:

<?php

$conn = oci_connect('SYSTEM','123456');
$sql = "SELECT * FROM persona";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
?>


Y en el cuerpo del documento:

<table width="100%" border="0">

<tr>

<th>CEDULA</th>

<th>NOMBRES</th>

<th>APELLIDOS</th>

<th>EDAD</th>

</tr>

<?php while ( $row = oci_fetch_assoc($stmt) ) {?>

<tr align="center">

<td><?php echo $row['CEDULA']; ?></td>

<td><?php echo $row['NOMBRES']; ?></td>

<td><?php echo $row['APELLIDOS']; ?></td>

<td><?php echo $row['EDAD']; ?></td>

</tr>

<?php }?>

</table>

Ejecutamos este ejemplo y el resultado será:



Si deseas profundizar más sobre trabajar Oracle con PHP, puedes consultar la documentación de PHP en http://www.php.net/manual/es/