PDF de programación - Desarrollo de aplicaciones en conexión con bases de datos

Imágen de pdf Desarrollo de aplicaciones en conexión con bases de datos

Desarrollo de aplicaciones en conexión con bases de datosgráfica de visualizaciones

Actualizado el 16 de Junio del 2017 (Publicado el 10 de Mayo del 2017)
2.037 visualizaciones desde el 10 de Mayo del 2017
229,0 KB
36 paginas
Creado hace 17a (30/01/2007)
Desarrollo
de aplicaciones
en conexión
con bases de datos

Marc Gibert Ginestà

P06/M2109/02153

© FUOC • P06/M2109/02153

Índice

Desarrollo de aplicaciones en conexión con bases de datos

Introducción .............................................................................................. 5

Objetivos ..................................................................................................... 6

1. Conexión y uso de bases de datos en lenguaje PHP .................... 7
1.1. API nativa frente a API con abstracción ........................................... 7
1.2. API nativa en MySQL ........................................................................ 8
1.3. API nativa en PostgreSQL ................................................................. 12
1.4. Capa de abstracción PEAR::DB ......................................................... 17
1.4.1. Capa de abstracción del motor de la base de datos .............. 19
1.4.2. Transacciones ........................................................................ 24
1.4.3. Secuencias ............................................................................. 24

2. Conexión y uso de bases de datos en lenguaje Java .................... 27
2.1. Acceder al SGBD con JDBC ............................................................... 28
2.2. Sentencias preparadas ....................................................................... 31
2.3. Transacciones .................................................................................... 32

Resumen ...................................................................................................... 34

Bibliografía ................................................................................................ 35

© FUOC • P06/M2109/02153

Introducción

5

Desarrollo de aplicaciones en conexión con bases de datos

Un curso de bases de datos quedaría incompleto si únicamente viéramos el
funcionamiento y administración de los dos gestores anteriormente comenta-
dos. Uno de los principales objetivos de un SGBD es proporcionar un sistema
de almacenamiento y consulta de datos al que se puedan conectar las aplica-
ciones que desarrollemos.

Así pues, en este capítulo vamos a abordar este tema, desde una perspectiva
totalmente práctica, intentando exponer las bases para usar los SGBD vistos
anteriormente desde algunos de los lenguajes de programación y conectores
más usados. Los ejemplos proporcionados serán lo más simples posible para
centrarnos en el tema que nos ocupa y no en las particularidades del lenguaje
de programación en sí.

En primer lugar, veremos las herramientas que ofrece PHP para conectarse con
bases de datos, y proporcionaremos algunos ejemplos.

A continuación, pasaremos a examinar la conexión JDBC a SGBD en general
y a MySQL y PostgreSQL en particular, proporcionando también los ejemplos
necesarios. También comentaremos algún aspecto avanzado como el de la per-
sistencia de la conexión al SGBD.

© FUOC • P06/M2109/02153

6

Desarrollo de aplicaciones en conexión con bases de datos

Objetivos

El objetivo principal de esta unidad es conocer las diferentes técnicas de co-
nexión a bases de datos que ofrecen PHP y Java.

Más concretamente, los objetivos que deberíais alcanzar al acabar el trabajo
con la presente unidad son los siguientes:

• Conocer las posibilidades que PHP y Java ofrecen para la conexión y uso de

bases de datos en general, y de MySQL y PostgreSQL en particular.

• Saber adaptar los programas desarrollados en estos lenguajes para que uti-

licen SGBD.

© FUOC • P06/M2109/02153

7

Desarrollo de aplicaciones en conexión con bases de datos

1. Conexión y uso de bases de datos en lenguaje PHP

El lenguaje de script PHP se ha popularizado extraordinariamente durante los
últimos años, gracias a su sencillez y su sintaxis heredada de otros lenguajes
como C, Perl o Visual Basic, que casi todos los desarrolladores ya conocían en
mayor o menor grado.

Su fácil integración con los servidores web más populares (Apache, IIS, etc.),
sin necesidad de recompilaciones o configuraciones complejas, ha contribui-
do también a que casi todos los proveedores de espacio web, desarrolladores
de aplicaciones de software libre basadas en web, y proveedores de aplicacio-
nes empresariales, lo usen para sus productos.

A lo largo de su corta historia ha progresado significativamente, y la versión 5.0
supone un paso adelante en la orientación a objetos, el tratamiento de excepcio-
nes y el trabajo con XML, lo que le hace parecerse en prestaciones a los lenguajes
más maduros en el ámbito empresarial.

La versión 5.0 era la más actualizada en el momento de confección del presente material
(finales del 2004). En este capítulo, no obstante, trabajaremos con la versión 4, ya que la
versión 5.0 es muy reciente y los cambios que incorpora en cuanto a configuración, mo-
delo de programación, etc. no les serán familiares a la mayoría de los estudiantes con co-
nocimientos de PHP.

1.1. API nativa frente a API con abstracción

Desde la versión 2.0, PHP ha incorporado de forma nativa funciones para la
conexión y uso de bases de datos. Al ser la rapidez una de las máximas de este
lenguaje, y ante la ventaja de que proporciona mecanismos para la carga de
librerías externas, se crearon unas librerías para cada motor de base de datos,
que contenían las funciones necesarias para trabajar con él.

Estas API nativas son diferentes para cada SGBD, tanto en los nombres de las
funciones que se utilizan para crear una conexión a la base de datos, lanzar
una consulta, etc., como en el tratamiento de errores, resultados, etc.

Aunque se puede argumentar que al usar la API del SGBD concreto que utili-
cemos, dispondremos de operadores o funcionalidades específicas de ese mo-
tor que una librería estándar no puede proporcionar, con el paso del tiempo
se ha visto que la utilización de estas API sólo está indicada (y aun así, no es
recomendable) para aplicaciones que sepamos seguro que no van a cambiar el

Como actualmente hay aplicaciones
web desarrolladas en PHP que usan
la API concreta del SGBD para el que
fueron pensadas, las revisaremos en
este apartado.

© FUOC • P06/M2109/02153

8

Desarrollo de aplicaciones en conexión con bases de datos

SGBD con el que trabajan, ya que la revisión del código PHP, cuando hay un
cambio de SGBD, es muy costosa y proclive a errores.

1.2. API nativa en MySQL

Para trabajar con la API nativa de MySQL en PHP, deberemos haber compilado
el intérprete con soporte para este SGBD, o bien disponer ya del binario de
PHP precompilado con el soporte incorporado.

En el caso de tenerlo que compilar, únicamente deberemos indicar como op-
ción --with-mysql. Posteriormente, o en el caso de que ya dispongamos del
binario, podemos validar que el soporte para MySQL está incluido correcta-
mente en el intérprete con la ejecución del siguiente comando:

$ php -i | grep MySQL

supported databases => MySQL

MySQL Support => enabled

$

A partir de aquí, PHP proporciona unos parámetros de configuración que nos
permitirán controlar algunos aspectos del funcionamiento de las conexiones
con el SGBD, y las propias funciones de trabajo con la base de datos.

En cuanto a los parámetros, deberán situarse en el fichero php.ini, o bien
configurarse para nuestra aplicación en concreto desde el servidor web. Desta-
can los siguientes:

mysql.allow_persistent: indica si vamos a permitir conexiones persisten-
tes a MySQL. Los valores posibles son true o false.

mysql.max_persistent: número máximo de conexiones persistentes per-
mitidas por proceso.

mysql.max_links: número máximo de conexiones permitidas por proceso,
incluyendo las persistentes.

mysql.connect_timeout: tiempo que ha de transcurrir, en segundos, antes
de que PHP abandone el intento de conexión al servidor.

Las conexiones persistentes son conexiones a la base de datos que se mantienen abiertas
para evitar el tiempo de latencia que se pierde en conectar y desconectar. El intérprete,
al ejecutar la sentencia de conexión a la base de datos, examina si hay alguna otra co-
nexión abierta sin usar, y devuelve ésta en lugar de abrir una nueva. Lo mismo sucede al
desconectar, el intérprete puede realizar la desconexión si hay suficientes conexiones aún
abiertas, o bien mantener la conexión abierta para futuras consultas.

© FUOC • P06/M2109/02153

9

Desarrollo de aplicaciones en conexión con bases de datos

Por lo que respecta a la utilización de la API para la conexión y consulta de
bases de datos, empezaremos con un ejemplo:

1 <?php

2 // Conectando y eligiendo la base de datos con que vamos a trabajar

3 $link = mysql_connect(‘host_mysql’, ‘usuario_mysql’, ‘password_mysql’) or die

(‘No puedo conectarme: ‘ . mysql_error());

4 echo ‘Conexión establecida’;

5 mysql_select_db(‘mi_database’,$link) or die(‘No he podido acceder a la base de

datos’);

6

7 // Realizando una consulta SQL

8 $query = ‘SELECT * FROM mi_tabla’;

9 $result = mysql_query($query,$link) or die(‘Consulta errónea: ‘ . mysql_error());

10

11 // Mostramos los resultados en HTML

12 echo “<table>\n”;

13 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

14

15

16

17

echo “\t<tr>\n”;

foreach ($line as $col_value) {

echo “\t\t<td>$col_value</td>\n”;

}

18 echo “\t</tr>\n”;

19 }

20 echo “</table>\n”;

21

22 // Liberamos el resultset

23 mysql_free_result($result);

24

25 // Cerramos la conexión

26 mysql_close($link);

27 ?>

En las cinco primeras líneas se establece la conexión y se selecciona la base de
datos con que se va a trabajar. El código es bastante explícito y la mayoría de erro-
res al respecto suelen deberse a una mala configuración de los permisos del usua-
rio sobre la base de datos con la que debe trabajar.

Conviene estar muy atento, sobre todo a las direcciones de origen de la co-
nexión, ya que, aunque podemos usar localhost como nombre de equipo,
si el intérprete y el SGBD están en el mismo servidor, suele ocurrir que PHP
re
  • Links de descarga
http://lwp-l.com/pdf3494

Comentarios de: Desarrollo de aplicaciones en conexión con bases de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad