Objetivos Objetivos
  • Crear un base de datos con MySQL
  • Conectarse a una base de datos
  • Realizar operaciones con una base de datos
Fuentes de información Fuentes de información
Contenidos
Contenidos
 

1.- Introducción

Lo habitual en las páginas web es que los datos estén centralizados en una base de datos a la que se accederá para gestionarlos. Hasta ahora hemos visto la gestión de datos de manera estática ya que no se almacenaban, sino que se mostraban por pantalla. En esta unidad vamos a explicar cómo conectarnos a una base de datos y trabajar con ella para poder gestionar e imprimir los diferentes datos.

2.- Bases de datos en PHP

Una de las características más importantes de PHP es su integración con diversos motores de base de datos, ya que éste está construido para generar de forma sencilla páginas web dinámicas a partir de información almacenada en bases de datos. En este punto vamos a trabajar con bases de datos MySQL, el cual es el sistema gestor de bases de datos de código abierto más popular en la actualidad. Además está disponible para distintos sistemas operativos, como Linux, Mac OS X, Solaris, Windows y otros más.

MySQL es muy popular en el desarrollo de aplicaciones web, ya que forma parte como sistema gestor de bases de datos de las plataformas LAMPBAMPMAMP, WAMP y XAMP.

PHP soporta compatibilidad, como hemos comentado, con accesos a múltiples sistemas de bases de datos, aunque el modo de programación sobre cada tipo de base de datos, no presenta, como en otros casos, la misma nomenclatura. PHP utiliza funciones de nombre genérico, pero precedidas normalmente por el nombre del sistema de base de datos, de modo que las funciones que ofrece el lenguaje para el acceso a cada tipo de base de datos son diferentes. Los pasos, por tanto, para consultar la información en una base de datos son los siguientes:

  • Apertura de la conexión con el servidor de bases de datos
  • Selección la base de datos a la que queramos conectarnos
  • Realización la consulta
  • Obtención de los diferentes resultados (registros)
  • Cierre de la conexión

Antes de conectarse a la base de datos, ésta ha de estar creada. Para ésto vamos a utilizar phpMyAdmin. Para ello abriremos el navegador y escribiremos localhost/phpmyadmin

Pulsando sobre la opción superior llamada Bases de datos se abrirá una pantalla donde podremos crear la nueva base de datos. Escribiremos como nombre de la base de datos instituto y pulsaremos el botón Crear:

Se mostrará un mensaje indicando que se ha creado y aparecerá en el listado de la izquierda. Pulsaremos sobre ella para que se abra:

Crearemos una tabla llamada Alumnos con 4 columnas:

  • Expediente: de tipo INT e índice PRIMARY
  • DNI: de tipo VARCHAR y longitud 9
  • Nombre: de tipo VARCHAR y longitud 15
  • Domicilio: de tipo VARCHAR y longitud 30

Pulsando el botón Guardar se mostrará un mensaje que indica que se ha realizado correctamente la acción. Agregaremos otra tabla llamada Asignaturas con dos columnas:

  • Codigo: de tipo INT e indice PRIMARY
  • Nombre: de tipo VARCHAR y longitud 15

Una vez hecho pulsaremos el botón de Estructura de la parte superior y se mostrarán las dos tablas. Pulsaremos el botón Insertar de la tabla Alumnos:

Aparecerá una ventana donde podremos insertar los datos:

Expediente DNI Nombre Domicilio
1111 11111111A Juan Pérez C/Quart, 15
2222 22222222B Ana López C/Cuba, 12
3333 33333333C Nacho Maño Av/ Pérez Galdós, 145
4444 44444444D María Garrido Av/ Blasco Ibáñez, 12

Ahora haremos lo mismo con las asignaturas:

Codigo Nombre
1 Informática
2 Matemáticas
3 Economía
4 Geografía

Una vez hecho cada fila deberá indicar que tiene 4 filas:

Ahora estaremos en condición de comenzar la conexión con PHP.

Ejercicios
Ejercicio
 

En la teoría hemos visto la creación de una base de datos y sus tablas asociadas. Crea dicha base de datos (ya sea en XAMPP o en cualquier otro gestor de MySQL).

   
Contenidos
Contenidos
   
 

3.- Conexión con la base de datos

Para establecer la conexión con una base de datos MySQL desde PHP se utiliza la función mysql_connect. Ésta tiene la siguiente sintaxis:

mysql_connect("Servidor","Usuario","Contraseña")

Los parámetros son opcionales y en el caso del servidor se puede indicar tanto su nombre como su IP. En caso de funcionar correctamente devolverá un identificador del enlace con el sistema de bases de datos, mientras que si no funciona devolverá FALSE.

Por ejemplo, para conectarnos a la base de datos creada en el punto anterior la llamada sería la siguiente:

$res = mysql_connect("localhost","root")

El servidor será la propia máquina en la que nos encontramos y el usuario root, el cual tiene plenos permisos y no tiene contraseña (está creado por defecto). Mostramos un programa que realiza la conexión:

Y el resultado:

El siguiente paso consiste en indicarle al sistema la base de datos con la que trabajaremos mediante la función mysql_select_db. Su sintaxis es la siguiente:

mysql_select_db("NombreBaseDatos","Identificador")

Los parámetros son: el nombre de la base de datos y el identificador devuelto por la función mysql_connect. Además devolverá TRUE en caso de éxito y FALSE en caso de error. Un ejemplo sería:

$sel = mysql_select_db("instituto",$res)

Mostramos un programa que selecciona la base de datos:

Y su resultado:

4.- Consultas a la base de datos

El siguiente paso es realizar consultas a la base de datos MySQL. Para ello utilizaremos la función mysql_query, cuya sintaxis es:

mysql_query("Consulta","Identificador")

Los parámetros son: la consulta a realizar y el identificador devuelto por la función mysql_query. Además devolverá FALSE si ha habido algún error, TRUE si se ha realizado una inserción, eliminación o borrado, y un resultado en caso de las demás consultas. Un ejemplo podría ser:

$cons = mysql_query("SELECT * FROM Alumnos",$res)

Ahora veamos el programa en PHP:

Y su resultado:

Solo con la ejecución de la consulta sobre la base de datos, no podemos presentar el resultado de la misma. Para poder mostrar información resultante de una consulta deberemos hacer uso de funciones y elementos complementarios. Una de las posibles es obtener los datos en un vector con la función mysql_fetch_array, cuya sintaxis es:

$rs = mysql_fetch_array("resultadoconsulta")

donde rs será un array que contendrá los valores y variableresultado los elementos devueltos por la sentencia mysql_query. Un ejemplo sería:

$rs = mysql_fetch_array($cons)

donde $cons es el resultado de mysql_query y $rs una variable de tipo array. Veamos un programa:

Cada fila será un vector con tantos elementos como campos tiene la tabla. El resultado, por tanto, será:

4.- Cierre de la conexión

El último de los pasos, una vez hemos trabajado con la base de datos, es el cierre. Es muy importante cerrar la base de datos ya que de no hacerlo pueden haber problemas. Para ello se utiliza la función mysql_close con la siguiente sintaxis:

mysql_close("Identificador")

El parámetro será el identificador devuelto por la función mysql_connect. Un ejemplo sería:

mysql_close($res)

Mostramos un programa que aglutina todo lo aprendido:


Ejercicios
Ejercicio
 

Implementa el ejemplo final visto en la teoría y guárdalo con el nombre basesdatos01.php.

Además crea un nuevo programa (almacénalo como basesdatos02.php) en el que muestres por pantalla todos los datos de la tabla Alumnos y todos los datos de la tabla Asignaturas. El formato será similar al ejemplo visto en la teoría.

Una vez hecho comprímelo todo en un fichero llamado basesdatos.zip y súbelo a la plataforma.