Antes de empezar con el ejemplo en PHP se debe instalar el módulo OCI8 en nuestro servidor, para lo cual hay que seguir los siguientes pasos:
- Instalar los paquetes buil-essential, php5-dev, php-pear y libaio1.
$ sudo apt-get install build-essential php5-dev php-pear libaio1 - Desde el siguiente enlace Instant Client Package descargar las versiones basic y sdk, guardarlas en el directorio
/usr/local/lib, luego descomprimir los archivos.
$ sudo unzip instantclient-basic-linux.x64-12.1.0.1.0.zip $ sudo unzip instantclient-sdk-linux.x64-12.1.0.1.0.zip
- Luego crear el enlace simbolico a la librería libclntsh.
$ cd instantclient_12_1
$ sudo ln -s libclntsh.so.12.1 libclntsh.so
- Añadir las variables de entorno necesarias para la instalación al archivo
/etc/environment.
$ sudo nano /etc/environment
Y agregar las siguientes líneas:# Oracle Instant Client
LD_LIBRARY_PATH="/usr/local/lib/instantclient_11_2"
TNS_ADMIN="/usr/local/lib/instantclient_11_2"
ORACLE_BASE="/usr/local/lib/instantclient_11_2"
ORACLE_HOME=$ORACLE_BASE
- Instalar el módulo OCI8 con el comando pecl.
$ sudo pecl install oci8 Durante el proceso de instalación se nos pedira la ubicación de la librería
...
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : aquí se debe introducir
instant,/usr/local/lib/instantclient_12_ y luego al finalizar la el proceso se podrá ver un mensaje similar al siguienteBuild process completed successfully
Installing '/usr/lib/php5/20100525/oci8.so'
install ok: channel://pecl.php.net/oci8-2.0.6
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini
- Como lo indica el mensaje anterior hay que agregar el módulo oci8 al archivo de configuración de php, para lo cual creamos un archivo
oci8.inien/etc/php5/conf.d/.
$ sudo nano /etc/php5/conf.d/oci8.ini
Y agregar la línea extension=oci8.so
- Reiniciar el servicio apache
$ sudo service apache2 restart
- Ahora hay que comprobar que el módulo esté habilitado, para esto usamos la función
phpinfocreando una página con el siguiente código:
<?php phpinfo(); ?>
Al cargar la página hay que buscar el módulo oci8 el cuál se verá como la siguiente imagen:
Finalmente podemos usar las funciones del módulo oci8 para conectarnos con una base de datos Oracle, el siguiente código consulta la tabla countries del esquema hr y los muestra en una tabla:
Finalmente podemos usar las funciones del módulo oci8 para conectarnos con una base de datos Oracle, el siguiente código consulta la tabla countries del esquema hr y los muestra en una tabla:
<?php
$c = oci_connect("hr", "welcome", "localhost/XE");
$s = oci_parse($c, "select country_name from countries");
oci_execute($s);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($s, OCI_ASSOC)) != false) {
echo " <tr>\n";
echo " <td>".htmlentities($row['COUNTRY_NAME'])."</td>\n";
echo " </tr>\n";
}
echo "</table>\n"; }
?>
La función
Al cargar la anterior página se podrá ver un listado como el siguiente.
Para más detalles sobre la funciones del módulo OCI8 se puede consultar el manual de PHP en este enlace.
oci_connect realiza la conexión con la base de datos, oci_parse prepara la sentencia sql, oci_execute ejecuta la consulta y con oci_fetch_array se recorre los registros devueltos por la base de datos.Al cargar la anterior página se podrá ver un listado como el siguiente.
Para más detalles sobre la funciones del módulo OCI8 se puede consultar el manual de PHP en este enlace.


No hay comentarios:
Publicar un comentario