domingo, mayo 07, 2006

PHP, ORACLE SOBRE IIS

Después de poder usar PHP para acceder a bases de datos como Mysql, Sql server, Postgresql o Access, esta última con ODBC, no había probado como acceder a una base de datos Oracle. Bueno aunque la forma de conexión es similar a las otras bases de datos, hay que considerar unos pequeños detalles para que la conexión sea exitosa.
Este es un pequeño resumen de mi experiencia con estas tecnologías que está enfocado al usuario que apenas comienza a dar los primeros pasos con PHP y Oracle. El servidor web sobre el que realicé las pruebas es IIS, por motivos laborales, pero debe funcionar bien sobre apache.


Primer paso: Lo primero que realicé es instalar el motor de base de datos, si ya tienes uno puedes ir al paso 2. Ir a la dirección http://www.oracle.com/technology/software/products/database/oracle10g/index.html allí descargar la versión de oracle que deseas según el sistema operativo, en mi caso lo probé sobre windows, pero con los rumores de la compra de alguna famosa distro de linux por parte de oracle, no cae mal probar la versión para este sistema operativo. La instalación sobre windows es muy sencilla y no difiere de la instalación de cualquier otro programa. Una vez instalado abrimos la interfaz web que trae oracle para gestionar la base de datos, vamos desde nuestro browser a la página http://127.0.0.1:8080/apex
Si elegiste otro puerto diferente al 8080 en la instalación debes tener en cuenta esto. En esta interfaz se puede hacer varias cosas como crear usuarios, ejecutar querys, crear tablas y gestionar datos de una forma gráfica. Lo único que realicé fue crear una tabla sobre la base de datos XE así que ingresamos con el login SYSTEM que es como el root de mysql o el sa de sql server y el password que elegiste en la instalación.
Después de logueados ingresamos al Object Browser y en el botón de Create ubicado a la derecha de la pantalla elegimos Table. Bueno allí se crea la tabla y ya podemos hacer las pruebas con nuestro lenguaje de programación web PHP.

Segundo paso: Descargar el php y las extensiones. Por facilidad yo recomiendo descargar el instalador de windows (PHP installer) ya que éste nos configura automáticamente el IIS y luego de instalar este paquete descargar la versión completa que tiene las extensiones (zip package). La instalación del primer programa es muy sencilla es solo tener presente al momento que nos pregunta cuál es el servidor web y elegir el que tenemos, en mi caso el IIS. Después de realizada la instalación probamos que el PHP esté funcionando bien, para eso creamos el script típico de prueba y lo ponemos en nuestro "Directorio particular". El script como te podrás imaginar es:

phpinfo();

Este script es de mucha ayuda ya que nos indica que el php está funcionando bien y también nos muestra información como las extensiones que tenemos activas. Despues de esto descargamos el archivo php (zip package) y lo descomprimimos. De este archivo nos interesa en particular las extensiones así que copiamos la carpeta llamada ext al directorio donde instalamos inicialmente el php. Luego editamos el archivo de configuración del php que se llama php.ini y que se debe encontrar en el directorio c:\winnt o c:\windows segun el OS. Vamos a encontrar el siguiente parámetro:
extension_dir = "./"
Como te podrás imaginar le dice al php el directorio donde va encontrar las extensiones. Lo cambiamos segun el caso:
extension_dir = "C:\PHP\ext"
Más abajo encontrarás el listado de extensiones y descomentamos (le quitamos el ;) la que se necesitamos para trabajar con oracle:
extension=php_oci8.dll
Volvemos a cargar nuestro script de pruebas y debe salir algo como esto:

La anterior imagen nos indica que el php tiene habilitada la extensión de trabajo de oracle llamada oci (Interfaz de Llamados Oracle).
Bueno ahora sí podemos conectarnos a la base de datos y ejecutar algún query.
El script de pruebas es el siguiente:

$connection = ocilogon("SYSTEM","pass","//localhost/XE");
$query = "SELECT * FROM SONG";
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
echo "ID|Nombre Canción|Nombre Grupo|Nombre Trabajo";
while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
echo "$row[0]|$row[1]|$row[2]|$row[3]";
}
oci_close($connection);

Este script da como resultado:



El paso que más puede provocar líos es el de la conexión o la función ocilogon. En este caso es decir para una base de datos oracle 10g es así:
ocilogon("usuario","password","//ip_equipo/base_datos");
Pero según lo que he leído para una base de datos oracle 9i o anterior esto no funciona, cosa que no he podido comprobar. La conexión para esta base de datos oracle 9i sería como:
$dbcon = oci_new_connect('usuario', 'password',
'(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 127.0.0.1)
(PORT = 1521)
)
(CONNECT_DATA =(SID = TU_SID))
)
');

Para finalizar pude notar como se comenta, que esta base de datos es bastante pesada y consume bastantes recursos de máquina.

Bueno una vez más podemos ver las grandes ventajas de usar este gran lenguaje de programación web, su facilidad de uso y el gran soporte que tiene para muchas bases de datos.

2 Comentarios:

Anonymous Anónimo dijo...

I say briefly: Best! Useful information. Good job guys.
»

8:26 a. m.  
Anonymous Anónimo dijo...

Este blog ha sido eliminado por un administrador de blog.

5:15 p. m.  

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal