Download Descargar archivo PHPHTMLJS/odbc

Document related concepts

Data Source Name wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Adaptive Server Anywhere wikipedia , lookup

Navicat wikipedia , lookup

Transcript
PHP bases de datos mediante ODBC:
Osvaldo Cantone
Breve resumen sobre el manejo de bases de datos no MySQL en PHP. La
información presentada se obtuvo del manual online de php.net y de las ayudas de
los distintos menúes de configuración de los orígenes ODBC.
En forma muy resumida, podemos decir que PHP dispone de diversos juegos de
funciones para conectar con distintos tipos de bases de datos. Por ejemplo, existe
un juego de funciones específico para MySQL, otro para Oracle, etc. Aunque no
existe entre sus bibliotecas de funciones ningún conjunto para acceder
específicamente a una base de datos Access, se dispone para ello de las funciones
de conexión ODBC con bases de datos.
Para enlazar datos entre una aplicación PHP y algunos tipos de bases de datos, por
ejemplo Microsoft Access, existe la tecnología Open Data Base Connectivity
(Conectividad Abierta de Bases de Datos) que permite operar con drivers que
“traducen” los distintos formatos para hacer accesibles los datos de los distintos
tipos de bases a las aplicaciones que los requieran.
Supongamos que se desea usar en una página PHP datos almacenados en una tabla
de una base Microsoft Access. Crearemos una conexión con esa base (la variable
$conexión del ejemplo) mediante la función odbc_connect() y luego usaremos las
funcones que permiten ejecutar una consulta SQL mediante esa conexión, en este
caso odbc_do().
<?php
$conexion= odbc_connect("miDSN", "", "");
$query = "SELECT * FROM Contactos";
$resultado = odbc_do($conexion, $query);
…
…
?>
Función odbc_connect():
Devuelve un objeto conexión con una base de datos y recibe como parámetros:

Un origen de datos: Este puede ser un origen de datos DSN de sistema o de
usuario. A continuación se datalla como operar con los origenes de datos
DSN.

Un usuario de la base da datos: El nombre de ususario si se ha establecido
usuario y password para acceder a la base.

Una password de la base de datos:La password si se ha establecido usuario
y password para acceder a la base.
Origenes de datos DSN de sistema, usuario y archivo
Cuando se instala Microsoft Office, se instala en el panel de control un icono ODBC
que representa el Administrador de Orígenes de datos ODBC. El Administrador de
ODBC permite instalar y configurar orígenes de datos ODBC de alguno de los
siguientes tres tipos de DSN:

DSN de usuario

DSN de sistema

DSN de archivo
Paso a paso para crear Origenes ODBC para Micrsoft Access:
En este ejemplo paso por paso se muestra como crear un origen de datos DSN de
sistema. Adecuado tano para trabajar con el Server Apache y bases Access, por
ejemplo como para el entorno Microsoft IIS (Internet Information Server). A
continuación se detallan las diferencias entre los tipos de DSN.
En el panel de control de Windows seleccionamos Herramientas Administrativas.
Y luego el Administrador de Origenes de Datos ODBC (Open Data Base
Connectivity)
Luego la solapa DSN de sistema o DSN de Usuario (en este ejemplo usaremos de
sistema.
Clickeamos en agregar y seleccionamos el Driver Microsoft Access(*.mdb)
NOTA: En Windows 7 puede que aparezca un error al no tener por defecto una ruta
correcta. Eso se corrige con los siguientes pasos indicados en el apunte Origenes
ODBC en Windows 7
Donde podemos configurar la nueva conexión DSN:
En el cuadro de diálogo Configuración de ODBC Microsoft Access aparecen los
siguientes controles:
Nombre del origen de datos: Es el nombre que daremos a la conexión DSN
Descripción: En blanco de forma predeterminada, puede contener un calificador
descriptivo, es decir un comentaros sobre el origen DSN.
Base de datos:. Se usará Seleccionar para abrir una base de datos existente o
Crear para una nueva. Con “Reparar…” se puede corregir una base de datos Access
dañada y con “Compactar…” se puede reducir espacio.
Base de datos del sistema: Se usará para seleccionar una base de datos
compartida (“.mdw”). El nombre del usuario predeterminado es Admin y la
contraseña de Microsoft Access para el usuario Admin es una cadena vacía.
Opciones:
Perimte cambiar las siguientes opciones de controlador:

Tiempo de espera de página. El tiempo (en décimas de segundo) que una
página no utilizada permanece en el búfer. Siempre debe ser mayor que 0.

Tamaño de búfer. El tamaño del búfer interno en kilobytes, que utiliza
Microsoft Access para transferir datos desde y al disco. Puede ser cualquier valor
entero divisible por 256.

Restricciones del acceso a la base de datos (Exclusivo y/o solo lectura).
Avanzadas: Permite opciones adicionales para el rendimiento del controlador, tales
como decisiones ante transacciones, numero de subprocesos admitidos, etc.)
En el ejemplo paso por paso se ve que el origen de datos se designa como
“miDSN”, como se usó en el primer ejemplo de código PHP, se incluye una
descripción y se vincula a la base de datos Access “agenda.mdb”.
Diferentes tipos de DSN:
 DSN de usuario
El DSN (Nombre de origen de datos) de usuario es un origen de datos que es
específico de un usuario que se almacena localmente, pero sólo está disponible
para el usuario que lo ha creado. Los orígenes de datos DSN de usuario se utilizan
con comandos de Microsoft Jet, ODBC o lenguaje de consulta estructurado (SQL),
pero no se utilizan con Microsoft Query. Se almacenan en el registro de Windows
bajo la siguiente clave:
Orígenes de datos de HKEY_CURRENT_USER\Software\Odbc\Odbc.ini\Odbc
 DSN de sistema
A diferencia de un origen DSN de usuario, un DSN de sistema no es específico
de un usuario. Un DSN de sistema se almacena localmente y no está dedicado a un
usuario concreto sino que cualquier usuario que inicie sesión en un equipo con
permiso para accesder al origen de datos puede utilizar ese DSN de sistema.
Algunos programas, como Microsoft SQL Server o el servidor Microsoft Internet
Information Server (IIS), requieren un DSN de sistema y el origen DSN debe
crearse en el servidor donde se encuentre dicho programa. Los DSN del sistema se
almacenan en el Windows bajo la clave siguiente:
Orígenes de datos de HKEY_LOCAL_MACHINE\Software\Odbc\Odbc.ini\Odbc
 DSN de archivo
Un origen de datos DSN de archivo se crea localmente y puede compartirse
entre usuarios. Está basado en un archivo, lo que significa que el archivo “.DSN”
contiene toda la información necesaria para conectarse al origen de datos. Tenga
en cuenta que debe instalarse el controlador ODBC localmente para utilizar un DSN
de archivo. Microsoft Jet y ODBC no utilizan orígenes DSN de archivo, en tanto que
Microsoft Query los utiliza.
Los DSN de archivo no se almacenan en el registro de Windows, sino que lo hacen
de manera predeterminada en la carpeta ..\Archivos de programa\Archivos
comunes\ODBC\Data Sources. El archivo “.DSN” es un archivo de texto que puede
verse en cualquier editor de texto, como el Bloc de notas de Microsoft.
Para crear un archivo DSN que señale a un DSN de sistema, siga estos pasos:
1. En un editor de texto, como el Bloc de notas de Microsoft, escribir las dos
líneas siguientes en un documento nuevo
[ODBC] DSN = MiDSNdesistema
donde "MiDSNdesistema" es el nombre de un DSN de sistema existente
que se haya instalado en la herramienta ODBC en el panel de control.
2. Guardar con un nombre que incluya una extensión de archivo “.DSN” para el
DSN de archivo; por ejemplo, las siguientes es un nombre válido:
"DBase4.dsn"
También se puede compartir un origen DSN de archivo con otros usuarios. Para
ello, se deberá compartir la carpeta en la que se almacena el archivo de DSN Nota
: cada usuario debe instalar el controlador ODBC adecuado (el controlador que hace
referencia el DSN de archivo) en el equipo para el DSN de archivo para que
funcione correctamente.
Un ejemplo:
Supongamos la existencia de una tabla “Contactos” en la base “agenda.mdb”
conectada mediante un origen DSN. El siguiente código listará lel contenido de los
dos primeros campos de todos los registros.
<?php
$conexion= odbc_connect("miDSN", "", "");
$query = "SELECT * FROM Contactos";
$resultado = odbc_do($conexion, $query);
while( odbc_fetch_row($resultado) ) {
echo odbc_reult($resultado,1).” ”. odbc_reult($resultado,1).” ”.
odbc_reult($resultado,1).” </br>”;
}
odbc_close($conexion);
?>
odbc_connect() opera como ya fue explicado al comienzo.
$query contiene el texto de una consulta SQL.
odbc_fetch_row(resource $result_id [, int $row_number ]) Trae una fila (registro)
del conjunto de datos que fueron devueltos por odbc_do () o por odbc_exec().
Después de que se llame el odbc_fetch_row(), los campos de ese registro se
pueden direccional con odbc_result() y el indice se autoincrementa apuntando
automáticamente a la tupla (registro) siguiente.
odbc_result() permite consultar el contenido de cada campo indicado con el número
pasado como segundo parámetro.
Otro ejemplo usando una búsqueda:
En este caso la aplicación PHP recibe un nombre de usuario y una clave pasados
desde un formulario HTML mediante el método POST, para buscarlos de una tabla.
<?php
$conexion = odbc_connect("unaDSN","","") or die("No se puede conectar a la base
de datos");
$consulta = "SELECT id_cliente, nombre, apellido FROM clientes WHERE apellido =
$_POST[user] and nro_doc = $_POST[pass]";
$res_consulta = odbc_exec($conexion, $consulta) or die ("ERROR");
while(odbc_fetch_row($res_consulta)){
$idUsuario
= odbc_result($res_consulta,1);
$nombreyapellido = odbc_result($res_consulta,2).",".odbc_result($res_consulta,3);
$usuario
= $_POST[„user‟];
$password
= $_POST[„pass‟];
}
…
…
?>