Vous êtes sur la page 1sur 54

Conexin a Bases de Datos en PHP

1. Configuracin y acceso servidor MySQL


1.1. Conexin servidor MySQL desde xampp
1.2. Configuracin password usuario root
2. Configurar la Base de Datos
2.1. Crear la Base de datos
2.2. Crear tablas en la Base de Datos
3. Conexin a bases de datos desde php
3.1. La Extensin MySQLi
3.2. Conexin servidor y seleccin de la base de datos
3.3. Mtodos, Funciones y Propiedades ms utilizadas
4. Paso de Variables
4.1. Mtodo Get
4.2. Mtodo Post
5. Construccin de formularios CRUD (Create Read Update - Delete)
5.1. Crear
5.2. Leer
5.3. Actualizar
5.4. Borrar
6. Otros Procesos
6.1. Manejo de Sesiones
6.2. Ejemplo Ingreso a un Sistema o Aplicacin web
6.3. Asignar una Cita
6.4. Atender la Cita

PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS


Conexin a Bases de Datos en PHP

INTRODUCCIN

Lo interesante de un Sistema o Aplicacin WEB es la de poder conectarse


a una base de datos, y poder trabajar desde el lado del servidor con datos
del negocio.

Con PHP se puede acceder a diferentes motores de Bases de datos tales


como SqlServer, Oracle, PostgreSql, sqlLite, interbase, MySQL entre
otros. El ms utilizado es MySQL. Para cada uno de ellos PHP implementa
una serie de funciones que le permitan poder realizar las tareas propias de
acceso a datos.

Este Objeto de Contenido le apoyar en su proceso formativo en el


desarrollo de una aplicacin web con conexin a bases de datos MySQL y
lenguaje de desarrollo PHP.

3
SENA
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

1. Configuracin y acceso al Servidor MySQL

1.1 Conexin servidor MySQL desde XAMPP

En el momento de instalar XAMPP, este instala el servidor web Apache y el


servidor de Bases de Datos MySQL.

Por lo anterior debemos verificar que en XAMPP se encuentren


ejecutndose los dos servidores: Servidor Apache y servidor MySQL.

Como observan en la imagen anterior tanto el servidor Apache y el


servidor MySQL se encuentran ejecutndose.

Verificacin del servidor MySQL


Podemos verificar si el servidor MySQL est ejecutndose de la siguiente
forma:

Ingresar al navegador y escribir la siguiente direccin:


http://localhost/xampp/

Debe mostrar el siguiente pantallazo de acuerdo a la imagen:

4
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

1.2 Configurar Password usuario root

Para configurar el password damos clic en la opcin del men llamada


Chequeo de Seguridad que se encuentra en el bloque Bienvenidos, ver
imagen:

5
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Despus aparece la siguiente informacin:

Para continuar damos clic en el enlace indicado, que se encuentra dentro


del ovalo de color rojo.

http://localhost/security/xamppsecurity.php

Al ingresar al enlace indicado aparece el formulario para que ingresemos


el password del usuario root, ya sea nuevo o para actualizarlo.

6
SENA
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Acceso al Administrador de las bases de Datos phpMydAdmin

Dar clic en phpmyadmin donde podemos acceder a una


herramienta web que nos permite administrar las bases de datos.

7
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Si el usuario root ya tiene password debe aparecer el siguiente formulario:

Si el usuario root todava no tiene password debe aparecer la siguiente pgina

8
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

9
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

2. Configurar la Base de Datos

2.1 Crear una Base de Datos desde PhpMyAdmin

Para crear nuestra base de datos buscamos en el men la opcin de bases


de datos y damos clic:

10
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Al dar clic en Bases de Datos nos debe aparece una opcin para que
ingresemos el nombre de la base de datos:

Como ejercicio vamos a crear una Base de Datos llamada CENTROMEDICO

11
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Casos de Uso
De acuerdo a la imagen anterior el Cotejamiento qued Utf8_spanish_ci,
que hace referencia a caracteres del espaol. Al dar clic en crear se crea
la base de datos.

Podemos verificar en el listado de las bases de datos actuales que


aparezca la base de datos que se acaba de crear.

2.2 Crear Tablas en una Base de Datos.

Como ejercicio vamos agregar la tabla llamada Pacientes con las


siguientes caractersticas:

12
SENA
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Para iniciar con la creacin de la tabla damos clic en la base de datos


centromedico del listado de bases de datos.

Al dar clic aparece:

Pacientes 6

Agregamos los datos Pacientes en Nombre y en nmero de columnas 6.

13
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Despus de dar clic en continuar, nos lleva a una ventana para que
configuremos los campos. En la siguiente imagen se muestra la
configuracin de acuerdo a las caractersticas presentadas de la tabla
Pacientes.

3. Conexin a una Base de Datos MySQL desde PHP

3.1 La extensin MySQLi

A partir de PHP 5 se recomienda utilizar la extensin MySQLi (MySQL Improved)


en vez de la tradicional MySQL.

Permite utilizar las mejoras de las ltimas versiones del servidor MySQL.
Interfaz orientada a objetos
Soporte para Declaraciones Preparadas
Soporte para Mltiples Declaraciones
Soporte para Transacciones
Mejoradas las opciones de depuracin
Soporte para servidor empotrado

14
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Pasos para la Conexin:

1. Conexin con el Servidor MySQL


2. Seleccin de la Base de datos
3. Uso de la Base de datos donde podemos:
a. Envo de operacin SQL a la base de datos.
b. Recepcin y tratamiento de los resultados.
c. Liberar memoria de resultados
4. Cerrar la Conexin

3.2 Conexin al Servidor MySQL y seleccin de Bases de Datos

Cdigo PHP para conectarnos a la Base de Datos CentroMedico

SENA

15
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Resultado de la ejecucin del cdigo

Tambin se puede crear un archivo aparte con las variables que contienen
los valores de los parmetros para conectarnos al servidor y a la base de
datos.

Cdigo archivo con las variables que contienen los valores de conexin al
servidor y a la base de datos:

Nombre del archivo: conexionBasesDatos.php

16
PROGRAMACIN WEB
SENA FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo archivo que se conecta a la base de datos:

3.3 Mtodos, Funciones y Propiedades ms utilizadas

$objeto->Query($sql): Mtodo que recibe la sentencia SQL y retorna un


objeto con el que podemos trabajar con los datos. Devuelve FALSE si ocurre un
error.

$objConexion->Close(): Cierra la conexin actual a la base de datos.

En la variable $resultado se guarda lo que devuelve la ejecucin de la consulta.

La variable $resultado se convierte en un objeto del cual podemos obtener la


siguiente informacin con los siguientes mtodos o propiedades.

17
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

$resultado->num_rows: Obtiene el nmero de registros de una


consulta.

$resultado->fetch_array() o fetch_all():Devuelve todas las filas en


un array asociativo, numrico, o en ambos.

$resultado->fetch_object(): Devuelve un objeto, donde cada


columna o campo de la consulta se convierte en una propiedad.

18
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

$resultado->insert_id: Devuelve el id del ltimo registro insertado en


la base de datos.

$resultado->free(): Libera la memoria asociada al resultado

$objConexion->prepare($sql): El mtodo prepare del objeto conexin


recibe como parmetro una sentencia sql y la mantiene lista para
ejecutarla. Retorna un objeto para poder seguir trabajando con la
sentencia sql.

$resultado=$objConexion->prepare($sql);

$resultado->bind_param(tiposdatos, $parametros): El mtodo


bind_param del objeto que recoge lo que retorna el mtodo prepare,
recibie como parmetros, los tipos de datos de los parmetros como un
string y despus los parmetros que se requieran.

$res=$resultado->execute(): El mtodo execute ejecuta la sentencia


sql que se haya creado con el mtodo prepare.

Ejemplo:

En el siguiente ejemplo, la sentencia Sql tiene unos parmetros que se ven


reflejados con el carcter interrogacin (?)

19
SENA
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

4. Pasar Variables

4.1 Mtodo GET

Cuando se pasan variables mtodo GET nos indica que estamos pasando
variables por la URL.

Se utilizan unos caracteres para separar las variables as:

Carcter ?: cuando referenciamos una o la primera variable


Carcter &: este carcter se utiliza para pasar la segunda o las siguientes
variables si se requieren.

Ejemplo:

En el siguiente ejemplo estamos llamando a la pgina llamada pagina.php


y le estamos pasando una variable llamada empresa con el valor de SENA y
una variable nit con el valor de 8999990341.

20
PROGRAMACIN WEB
SENA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo Archivo pagina.php

4.2 Mtodo POST

El mtodo post, normalmente son las que enviamos por los formularios.

En el siguiente ejemplo el encabezado del formulario tiene una


propiedad llamada method y tiene como valor post.

El encabezado del formulario tambin tiene una propiedad action


donde est relacionada un archivo llamado validarInsertarPaciente2.php.

En el archivo validarInsertarPaciente2.php llegan todas las variables


del formulario que vienen siendo todos los campos del mismo (Subrayados
en rojo).

21
SENA
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

22
PROGRAMACIN WEB
SENA FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

5. Construccin de formularios CRUD (Create Read Update -


Delete)

5.1 Insertar

En el siguiente ejemplo se construir el formulario para insertar pacientes,


Primero se implementan los controles al formulario, de acuerdo con la
imagen a continuacin y con la informacin que se suministr en los objetos
anteriores:

23
SENA
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo del Formulario

24
SENA
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo del Archivo que hace la insercin del Paciente

Nombre del Archivo: validarInsertarPaciente.php

Debemos modificar el cdigo del formulario en el encabezado


agregndole el nombre del archivo en el action:

25
PROGRAMACIN WEB
SENA FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Qu ocurre cuando damos clic en el Botn del Formulario?

Ejecuta el archivo que se encuentra en la propiedad action del formulario y


los campos del formulario se pasan por mtodo POST.

Cules son los campos del Formulario?

Los nombres de los campos del formulario los debemos tener en cuenta, ya
que as como los llamamos los debemos utilizar en el otro archivo.

Resultado de la Ejecucin del formulario

26
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Al dar clic en el Botn Enviar aparece el siguiente resultado

Ahora vamos a verificar por phpmyadmin si ya aparece el paciente


registrado.

27
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

5.2 Consultar Pacientes

Continuando con el ejemplo del centro mdico, a continuacin se presenta el


cdigo para realizar la consulta de datos:

28
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Otra forma de consultar e imprimir en pantalla los resultados, utilizando el


mtodo fetch_object() del resultado se presenta a continuacin:

29
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Resultado de la ejecucin del archivo consultar Pacientes:

Las consultas se presentan con frecuencia en una tabla, por lo cual se


proporciona como ejemplo el cdigo para listar pacientes usando una tabla, tal
como se ve en la imagen siguiente:

30
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Resultado de la ejecucin del archivo consultar Pacientes:

31
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo que permite listar los pacientes en una tabla

32
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Otra forma de Listar en una tabla es utilizando el mtodo fetch_object() como


se muestra a continuacin:

33
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

5.3 Actualizar Pacientes

El siguiente ejemplo presenta el cdigo para modificar datos en la tabla


paciente.

De acuerdo a los pacientes existentes en la base de datos, vamos actualizar la


fecha de nacimiento de Amparo Grisales a 1951-06-25.

Cdigo archivo que hace la actualizacin

34
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Resultado de la Ejecucin Actualizacin

Actualizacin mediante parmetros

35
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Una vez se han realizado las modificaciones sobre los datos, se debe
listar la informacin, tal como quedo modificada.

5.4 Borrar Pacientes

Para eliminar registros de la base de datos, se debe proporcionar la


funcionalidad que permita ejecutar la sentencia SQL Delete sobre las filas de
la base de datos que se desean eliminar, sin embargo recuerde que la
implementacin de esta funcionalidad debe obedecer a las reglas de negocio
definidas sobre la aplicacin.

En el ejemplo proporcionado se permite la eliminacin de un paciente


recibiendo como parmetro el nmero de identificacin del mismo.

36
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

37
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Posterior a la eliminacin se deben visualizar los datos para confirmar que


los registros ya no se encuentran en la base de datos.

Listar Pacientes despus de eliminar

6. Otros Procesos

6.1 Manejo de Sesiones

Es muy importante que las aplicaciones web manejen sesiones para que las
personas que ingresan sean usuarios registrados en el sistema.

Cmo se registra una variable de sesin?

$_SESSION[variable] = valor;

Se recomienda que todos los archivos del sitio inicien con la sentencia
sesin_start() para que se reconozcan las variables de sesin.

<?php
sessin_start();

38
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cmo validar que no ingresen a una pgina sin tener una sesin
abierta?

En el cdigo anterior si no se encuentra registrada la variable de sesin


llamada variable, lo regresa al index del sitio con un mensaje que debe iniciar
sesin.

Cmo cerrar una Sesin?

39
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Al cerrar la sesin lo lleva al index donde muestra el mensaje.

6.2 Ejemplo Ingreso a un Sistema o Aplicacin WEB

Crear una tabla de usuarios que permite validar los datos de ingreso.
Este usuario puede ser un mdico, un asistente, el administrador o un
paciente
Crear un formulario de ingreso al sistema.

Tabla Usuarios en el Sistema

40
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Datos Tabla Usuarios

El campo usuPassword se encuentra encriptado utilizando la


funcin md5 de php.

La forma de encriptar es la siguiente:

valorEncriptado = md5(valorAEncriptar);

Formulario Ingresar al Sistema o Aplicacin

41
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Formulario Ingresar al Sistema o Aplicacin

Cdigo Formulario Ingresar al Sistema o Aplicacin

42
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo del archivo que valida el ingreso al Sistema o Aplicacin

43
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Archivo ConexionBaseDatos

6.3 Asignar Cita

En el anterior formulario el campo para la fecha es un campo de tipo date


y el campo para la hora es time.

44
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo Formulario Asignar Cita

45
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo archivo que valida la Asignacin de la Cita

46
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Listar Citas

Cdigo Archivo Listar Citas

47
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

6.4 Atender una Cita

Primero se listan solo las citas cuyo estado sea Asignado.

48
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo archivo listar Citas por Atender

49
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Formulario Editar la Cita

Aqu el Mdico puede ingresar las observaciones detectadas en la


cita. En ste formulario llega el idCita, el cual nos permite hacer una
consulta para conocer el paciente de la cita como lo muestra el formulario.

50
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Cdigo Formula Editar Cita

Cdigo Formula Editar Cita

51
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

Formulario con observaciones

Al dar clic en el Botn de Enviar, actualiza el estado y actualiza el campo


observaciones.

Cdigo archivo Actualiza la Cita

52
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

En el cdigo anterior cambia el estado de la Cita de Asignado a Atendido, y


actualiza el campo observaciones de acuerdo a lo ingresado por el mdico.

Listado de Citas por Atender despus de la Actualizacin

En la siguiente tabla podemos darnos cuenta como se actualiz los datos


de la Cita del Paciente Faustino Asprilla.

53
PROGRAMACIN WEB FAVA UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

BIBLIOGRAFIA

S. Suehring, T. Converse, J. Park. PHP6 and MySQL Bible. Wiley Pub. 2009.

O. Heurtel. PHP y MySQL. Domine el desarrollo de un sitio Web


dinmico e interactivo. Ediciones ENI 2009.

M. Delisle. Dominar phpMyAdmin para una administracin efectiva de MySQL.


Packt Publishing (2007)

PHP.net. Extensin MySQLi, consultado en octubre de 2013 y disponible en:


http://es.php.net/manual/es/book.MySQLi.php

PHP.net. API MySQL Original, consultado en octubre de 2013 y disponible en:


http://es.php.net/manual/es/book.MySQL.php

54
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS
Conexin a Bases de Datos en PHP

GLOSARIO

md5() = Funcin que calcula el hash MD5 de una cadena. Forma de encrip-
tar una cadena.

Mtodo GET: La forma de pasar variables mediante la URL

Mtodo POST: Forma de pasar variables de forma codificada. Normalmente


se envan cuando se utilizan formularios.

MySQLi: Extensin de php. Clase definida para conectar a una base de datos
MySQL desde php.

phpMyadmin= Herramienta web en php diseada especialmente para admi-


nistrar bases de datos MySQL.

REQUEST: Es un array asociativo que contiene todos los valores de variables


tipo $_POST, $_GET y $_COOKIE

Sessin_start(): Inicia una nueva sesin o reanuda la presente.

55
PROGRAMACIN WEB UDI INGENIERA DE SISTEMAS

Vous aimerez peut-être aussi