# Lección 5: Funciones de acceso a BB.DD.

## Conceptos teoricos

###

PHP posee funciones para interactuar con los sistema gestores de bases de datos mas usuales así como con ODBC, pero la mayoria de los desarrollos con PHP se realizan con mysql, veremos aquí como interactuar con mysql. Aplicar lo visto aquí a otros gestores de bases de datos sará sencillo solo habrá que buscar en el manual oficial las funciones equivalentes a las aquí utilizadas.

### Conexión

En cualquier script que vaya a interactuar con una base de datos lo primero que tendremos que hacer es conectarnos al sistema gestor de bases de datos, para ello utilizaremos la siguiente función.

mysql_connect("host","usuario","contraseña.) Devuelve un entero que identifica la conexión o FALSE si no se produce.

        <?php
          $conexion = mysql_connect('localhost', 'root', '');//Por defecto en WAMP
          if (!$conexion) {
              die('no se ha podido ralizar la conexion);//Termina el script
          }
          echo 'Se ha conectado correctamente';
    ?>

### Seleccón de la base de datos

Una vez conectados al sistema gestor tendremos que elegir la base de datos del mismo con la que queremos trabajar ya que en el sistema gestor pueden haber muchas, para ello utilizaremos la función mysql_select_db

mysql_select_bd("nombre_bbdd",conexión) Devuelve TRUE o FALSE.

    // seleccionamos la base de datos tienda (suponemos realizada la conexión anterior)
    $seleccion = mysql_select_db('tienda', $conexion);
    if (!$seleccion) {
        die ('No se ha podido realizar la conexión a la BBDD tienda');
    }
    ?>

### Ejecutando sentencias SQL

Una vez hemos seleccionado la BBDD con la que queremos trabajar para ejecutar sentencias SQL utilizaremos la función mysql_query independientemente del tipo de sentencia.

mysql_query("SENTENCIA SQL ") Devuelve TRUE o FALSE en caso de una sentencia la consulta que no devuelva información (insert, update,....) Devuelve una variable 'especial' con el contenido de la consulta en caso de una sentencia que devuelve información (select,...). En el siguiente apartado veremos como extraerinformación de la misma.

    // seleccionamos la base de datos tienda (suponemos realizada la conexión anterior)

    $consulta = mysql_query('SELECT * FROM ARTICULOS'));

    ?>

### Extrayendo información

Hemos visto que cuando la consulta ejecutada devulve información a una variable, veamos ahora como extraer los datos de esta variable con la función mysql_fetch_array:

mysql_fetch_array("SENTENCIA SQL ") Devuelve en forma de matriz asociativa el resultado de la consulta y FALSE cuando no tenga datos.

    // seleccionamos la base de datos tienda (suponemos realizada la conexión anterior)

    while($fila = mysql_fetch_array($consulta)
    {
    echo "$fila[COD] </BR>";//Imprime los codigos de los articulos.
    }

    ?>

## Ejemplos

## Ejercicios

### Ejercicio1:

Crea en mysql la base de datos tienda, y la tabla articulos con los campos COD, DES Y PRE. Pon en funcionamiento los ejemplos anteriores todos unidos en un mismo script.

### Ejercicio2:

Modifica el script anterior para que muestre los datos de la tabla articulos con un diseño atractivo.

### Ejercicio3:

Añade una tabla a la base de datos llamada cantidad que contenga dos campos COD, CAN. Crea un script que muestre un script que muestre el código, la descripción, el precio y la cantidad de cada articulo.

### Ejercicio4:

Modifica el script anterior y añade un formulario con un campo que permita buscar los datos de un único articulo.

### Ejercicio5:

Crea un script como el siguiente que permite insertar o modificar datos de la tabla a la vez que muestra las descripciones de todos los articulos.

### Ejercicio6 (de ampliación):

Crea una tabla con dos campos, provincias y poblaciones (rellenala con algunos datos). Crea un formulario con dos listas desplegables, la primera permite seleccionar la provincia deseada y la segunda se carga con las poblaciones de la provincia seleccionada.

INDICE DE LECCIONES

Introducción

Sintaxis básica

Estructuras de Control

Funciones de usuario

Acceso a BB.DD

Cookies

Sesiones

Otras funciones

ENLACES DE INTERES

web oficial de PHP

web oficial de Apache

web oficial de w3c

desarrollo web