base de datos por gustavo v.m

22
Acceso a bases de datos Acceso a bases de datos con MySQL y ODBC desde con MySQL y ODBC desde PHP PHP Gustavo C. Vilchez Mallqui

Upload: gustavo

Post on 23-Jun-2015

648 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Base de Datos por Gustavo V.M

Acceso a bases de datos Acceso a bases de datos con MySQL y ODBC desde con MySQL y ODBC desde

PHPPHP

Gustavo C. Vilchez Mallqui

Page 2: Base de Datos por Gustavo V.M

ÍndiceÍndice

IntroducciónConceptos previosProfundizando

Como acceder a bases de datos, realizar consultas, ...Funciones MySQL, ODBC

Funciones para el manejo de bases de datosEjemplosBibliografía

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 3: Base de Datos por Gustavo V.M

IntroducciónIntroducción

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…

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 4: Base de Datos por Gustavo V.M

IntroducciónIntroducción

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 pormuchos programadores como la mejor combinación Lenguaje - Sistema gestor de bases de datos.

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 5: Base de Datos por Gustavo V.M

Conceptos claveConceptos clave

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 DatosSGBD – Sistema Gestos de Bases de Datos

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 6: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

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.

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 7: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

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

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 8: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Conexión Ejemplo MySQL:

◦<?$conexion = mysqli_connect(‘host’,’usuario’,’clave’,’DSN_BD’);if ($conexion == FALSE){

echo (‘Error en la conexion’); exit();

}...

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 9: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Conexión Ejemplo ODBC:

◦ <?$conexion =

odbc_connect(‘DSN_BD’,’usuario’,’clave’);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.

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 10: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

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

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 11: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Operación Ejemplo MySQL:

◦<?$resultado = mysqli_query($conexion,’SELECT * FROM ...’);if ($resultado == FALSE){

echo (‘Error en la consulta’);}else{

echo (‘Consulta realizada con éxito’);}...

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 12: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Operación Ejemplo ODBC:

◦<?$resultado = odbc_exec($conexion,’SELECT * FROM ...’);if ($resultado == FALSE){

echo (‘Error en la consulta’);}else{

echo (‘Consulta realizada con éxito’);}...

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 13: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

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 -> extrae fila◦Método ODBC: odbc_fetch_row -> extrae fila

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 14: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Operación Ejemplo MySQL (extraer datos de resultado):

◦<?...while ($fila = mysqli_fetch_row($resultado)){

echo (“$fila[0], $fila[1]”); Diagrama de flujo

} ...

?> La variable fila contiene los valores de cada columna de la tabla del resultado y se extraen

como si fuera un array.

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 15: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Operación Ejemplo ODBC (extraer datos de resultado):

◦ <?...while ($fila = odbc_fetch_row($resultado)){

echo (“$fila[0], $fila[1]”); }

Diagrama de flujo ...

?>

En ambos casos, también podemos acceder a los datos, en vez de ‘$fila[entero]’, usando el

identificador de la columna de la BD. Ejemplo: odbc_result($Resultado, ‘nombreColumna');

mysqli_result($Resultado, ‘nombreColumna');

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 16: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

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 -> libera recursos de una consulta

mysqli_close -> cierra la conexión con la BD

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 17: Base de Datos por Gustavo V.M

ProfundizandoProfundizando

Desconexión

Ejemplo:◦ ...

mysqli_free_result($resultado);mysqli_close($conexion);

?>

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 18: Base de Datos por Gustavo V.M

FuncionesFunciones

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

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 19: Base de Datos por Gustavo V.M

FuncionesFunciones

Debido a que prácticamente la única diferencia en la sintaxis es el uso de “mysqli <-> odbc”, los sustituiremos por x.◦ x_columns ->  Devuelve información sobre nombres de columnas.◦ x_tables -> Devuelve información sobre nombres de tablas. ◦ x_data_source -> Devuelve información sobre el origen de datos actual.◦ x_error -> Devuelve el ultimo código de error.◦ x_errormsg -> Devuelve el ultimo mensaje de error.◦ x_num_fields ->  Devuelve el número de columnas de un resultado. ◦ x_num_rows -> Devuelve el número de filas de un resultado. ◦ x_result -> Obtiene los datos de un resultado.◦ x_fetch_array ->  Devuelve los datos de un resultado en un array. ◦ x_fetch_object ->  Devuelve los datos de un resultado en variable de tipo

objeto.

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 20: Base de Datos por Gustavo V.M

EjemplosEjemplosEjemplos orientativos completos de acceso a base

de datos.MySQL

◦ <? @$transportes = mysqli_connect(‘localhost’,’usuario’,’password’,’transportes’);if (!$transpotes){ echo (‘Error. No se ha podido conectar con la base de datos’);}else{ // conectado! @$empleados = mysqli_query($transportes,’SELECT * 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’) . ‘<br/>’); }} mysqli_free_result($empleados); mysqli_close($transportes);}

?>

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 21: Base de Datos por Gustavo V.M

EjemplosEjemplos

ODBC◦ <?

@$transportes = odbc_connect(‘localhost’,’usuario’,’password’,’transportes’);if (!$transpotes){ echo (‘Error. No se ha podido conectar con la base de datos’);}else{ // conectado! @$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’) . ‘<br/>‘); }} odbc_free_result($empleados); odbc_close($transportes);}

?>

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP

Page 22: Base de Datos por Gustavo V.M

BibliografíaBibliografía

http://www.pecesama.net/php/odbc.phphttp://es.wikipedia.org/wiki/Mysqlhttp://es.wikipedia.org/wiki/DSNhttp://es.wikipedia.org/wiki/ODBC

Acceso a bases de datos con MySQL y ODBC desde PHPAcceso a bases de datos con MySQL y ODBC desde PHP