Title: Acceso a bases de datos con MySQL y ODBC desde PHP
1Acceso a bases de datos con MySQL y ODBC desde PHP
2Índice
Acceso a bases de datos con MySQL y ODBC desde PHP
- Introducción
- Conceptos previos
- Profundizando
- Como acceder a bases de datos, realizar
consultas, ... - Funciones MySQL, ODBC
- Funciones para el manejo de bases de datos
- Ejemplos
- Bibliografía
3Introducción
Acceso a bases de datos con MySQL y ODBC desde PHP
- ODBC
- ODBC (Open DataBase Conectivity) es un estándar
de acceso a bases de datos en PHP que nos permite
el acceso a muchas bases de datos, manteniendo
casi intacta la sintaxis de acceso y manejo. - Para poder llevar a cabo ODBC, los sistemas
gestores de bases de datos tienes que se
compatibles. - Por ejemplo, podemos acceder a bases de datos,
como - Access, Adabas D, IBM DB2, iODBC, Solid
4Introducción
Acceso a bases de datos con MySQL y ODBC desde PHP
- MySQL
- MySQL es un sistema gestor de bases de datos muy
extendido en el mundo de la programación Web y
que además es de software libre. - Este software integrado con PHP es considerado
por - muchos programadores como la mejor combinación
Lenguaje - Sistema gestor de bases de datos.
5Conceptos clave
Acceso a bases de datos con MySQL y ODBC desde PHP
- DSN - Representa todo lo relativo a una fuente de
datos configurada por el usuario. Esta
configuración es imprescindible para que los
drivers o controladores tengan la información
necesaria para conectarse a una base de datos
especifica. - BD Base de Datos
- SGBD Sistema Gestos de Bases de Datos
6Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Como se utilizan las bases de datos
- Para acceder a una BD y obtener los datos
deseados, ya sea vía MySQL, ODBC o cualquier
SGBD, se deben seguir los siguientes pasos - Conexión
- Especificamos el origen de datos y se procede a
conectar. - Operación
- Realizamos las consultas necesarias obteniendo
los datos deseados y operando con ellos. - Desconexión (importante!)
- Cerramos la conexión con la base de datos.
7Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Conexión
- Paso primordial. Sin este paso, no podemos hacer
nada con el servidor de base de datos. De todas
formas, necesitamos estar explícitamente
conectados a la BD para poder realizar cualquier
operación. Métodos de conexión - Método MySQL mysqli_connect
- Método ODBC odbc_connect
8Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Conexión
- Ejemplo MySQL
- lt?
- conexion mysqli_connect(host,usuario,clav
e,DSN_BD) - if (conexion FALSE)
- echo (Error en la conexion)
- exit()
-
- ...
9Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Conexión
- Ejemplo ODBC
- lt?
- conexion odbc_connect(DSN_BD,usuario,cla
ve) - if (conexion FALSE)
- echo (Error en la conexion)
- exit()
-
- ...
- En ambos ejemplos, conexion guarda un
identificador (puntero) a la base de datos con
el que podemos realizar las operaciones deseadas.
Si no se puede conectar, la variable pasa a valer
FALSE.
10Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Una vez conectados correctamente a la BD,
procedemos a realizar las consultas necesarias.
Para ello, utilizamos los siguientes métodos. - Método MySQL mysqli_query
- Método ODBC odbc_exec, odbc_do
11Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Ejemplo MySQL
- lt?
- resultado mysqli_query(conexion,SELECT
FROM ...) - if (resultado FALSE)
- echo (Error en la consulta)
- else
- echo (Consulta realizada con éxito)
-
- ...
12Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Ejemplo ODBC
- lt?
- resultado odbc_exec(conexion,SELECT FROM
...) - if (resultado FALSE)
- echo (Error en la consulta)
- else
- echo (Consulta realizada con éxito)
-
- ...
-
13Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Existen dos tipos de consultas SQL en cuanto al
tipo de valor que devuelven. - Las que devuelven true o false. Son sentencias
del tipo INSERT,DELETE, UPDATE, ... - Y las que devuelven un resultado (SELECT,
SHOW...). Son variables de tipo objeto que, al
igual que en la conexión, devuelven un
identificador y que además necesitan unos métodos
específicos para poder extraer los valores
deseados. Estos métodos son los siguientes - Método MySQL mysqli_fetch_row -gt extrae fila
- Método ODBC odbc_fetch_row -gt extrae fila
14Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Ejemplo MySQL (extraer datos de resultado)
- lt?
- ...
- while (fila mysqli_fetch_row(resultado))
- echo (fila0, fila1) Diagrama
de flujo -
- ...
- ?gt
- La variable fila contiene los valores de cada
- columna de la tabla del resultado y se extraen
- como si fuera un array.
15Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Operación
- Ejemplo ODBC (extraer datos de resultado)
- lt?
- ...
- while (fila odbc_fetch_row(resultado))
- echo (fila0, fila1)
-
Diagrama de flujo - ...
- ?gt
- En ambos casos, también podemos acceder a los
- datos, en vez de filaentero, usando el
- identificador de la columna de la BD. Ejemplo
- odbc_result(Resultado, nombreColumna')
- mysqli_result(Resultado, nombreColumna')
16Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Desconexión
- Cuando nos conectamos a una BD y extraemos datos
estamos consumiendo recursos del servidor. Si no
cerramos convenientemente la conexión y las
consultas no liberamos la memoria que consumen.
Este error, multiplicado por el numero de
peticiones de clientes a la BD, puede ocasionar
problemas con el buen funcionamiento del servicio
WEB. - Por tanto, se recomienda encarecidamente
liberar dichos recursos con los siguientes
métodos. - Métodos mysqli_free_result -gt libera recursos de
una consulta - mysqli_close -gt cierra la conexión con la BD
17Profundizando
Acceso a bases de datos con MySQL y ODBC desde PHP
- Desconexión
- Ejemplo
- ...
- mysqli_free_result(resultado)
- mysqli_close(conexion)
- ?gt
18Funciones
Acceso a bases de datos con MySQL y ODBC desde PHP
- En MySQL o ODBC existen una gran cantidad de
funciones para operar con bases de datos que nos
facilitan enormemente el trabajo. Solo se
mostrara las mas importantes, para mas
información consultar en la Web oficial de PHP
en www.php.net
19Funciones
Acceso a bases de datos con MySQL y ODBC desde PHP
- Debido a que prácticamente la única diferencia en
la sintaxis es el uso de mysqli lt-gt odbc, los
sustituiremos por x. - x_columns -gt Devuelve información sobre nombres
de columnas. - x_tables -gt Devuelve información sobre nombres de
tablas. - x_data_source -gt Devuelve información sobre el
origen de datos actual. - x_error -gt Devuelve el ultimo código de error.
- x_errormsg -gt Devuelve el ultimo mensaje de
error. - x_num_fields -gt Devuelve el número de columnas
de un resultado. - x_num_rows -gt Devuelve el número de filas de un
resultado. - x_result -gt Obtiene los datos de un resultado.
- x_fetch_array -gt Devuelve los datos de un
resultado en un array. - x_fetch_object -gt Devuelve los datos de un
resultado en variable de tipo objeto.
20Ejemplos
Acceso a bases de datos con MySQL y ODBC desde PHP
- Ejemplos orientativos completos de acceso a base
de datos. - MySQL
- lt?
- _at_transportes mysqli_connect(localhost,usua
rio,password,transportes) - if (!transpotes)
- echo (Error. No se ha podido conectar con
la base de datos) - else // conectado!
- _at_empleados mysqli_query(transportes,SEL
ECT FROM empleados) - if (!empleados)
- echo (Error. No se ha podido
realizar la consulta) - else // datos obtenidos!
- while (mysqli_fetch_row(empleados))
- echo (Nombre .
mysqli_result(empleados,Nombre) . ltbr/gt) -
- mysqli_free_result(empleados)
- mysqli_close(transportes)
-
- ?gt
21Ejemplos
Acceso a bases de datos con MySQL y ODBC desde PHP
- ODBC
- lt?
- _at_transportes odbc_connect(localhost,usuari
o,password,transportes) - if (!transpotes)
- echo (Error. No se ha podido conectar con
la base de datos) - else // conectado!
- _at_empleados odbc_exec(transportes,SELECT
nombre FROM empleados) - if (!empleados)
- echo (Error. No se ha podido
realizar la consulta) - else // datos obtenidos!
- while (odbc_fetch_row(empleados))
- echo (Nombre .
odbc_result(empleados,nombre) . ltbr/gt) -
- odbc_free_result(empleados)
- odbc_close(transportes)
-
- ?gt
22Bibliografía
Acceso a bases de datos con MySQL y ODBC desde PHP
- http//www.pecesama.net/php/odbc.php
- http//es.wikipedia.org/wiki/Mysql
- http//es.wikipedia.org/wiki/DSN
- http//es.wikipedia.org/wiki/ODBC
- Desarrollo web con PHP 5 y MySQL - Ed.Anaya