Conexión a Bases de Datos en PHP

1. Configuración y acceso servidor MySQL
1.1. Conexión servidor MySQL desde xampp
1.2. Configuración 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. Conexión a bases de datos desde php
3.1. La Extensión MySQLi
3.2. Conexión servidor y selección de la base de datos
3.3. Métodos, Funciones y Propiedades más utilizadas
4. Paso de Variables
4.1. Método Get
4.2. Método Post
5. Construcción 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 Aplicación web
6.3. Asignar una Cita
6.4. Atender la Cita

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Conexión a Bases de Datos en PHP

MAPA CONCEPTUAL

Generar Reportes

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Conexión a Bases de Datos en PHP

INTRODUCCIÓN

Lo interesante de un Sistema o Aplicación 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 más 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 aplicación web con conexión a bases de datos MySQL y
lenguaje de desarrollo PHP.

3
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Conexión a Bases de Datos en PHP

1. Configuración y acceso al Servidor MySQL

1.1 Conexión 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
ejecutándose los dos servidores: Servidor Apache y servidor MySQL.

Como observan en la imagen anterior tanto el servidor Apache y el
servidor MySQL se encuentran ejecutándose.

Verificación del servidor MySQL
Podemos verificar si el servidor MySQL está ejecutándose de la siguiente
forma:

Ingresar al navegador y escribir la siguiente dirección:
http://localhost/xampp/

Debe mostrar el siguiente pantallazo de acuerdo a la imagen:

4
SENA FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Conexión a Bases de Datos en PHP

1.2 Configurar Password usuario root

Para configurar el password damos clic en la opción del menú llamada
Chequeo de Seguridad que se encuentra en el bloque Bienvenidos, ver
imagen:

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

6 SENA FAVA . ya sea nuevo o para actualizarlo. que se encuentra dentro del ovalo de color rojo. http://localhost/security/xamppsecurity.Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP Después aparece la siguiente información: Para continuar damos clic en el enlace indicado.Servicio Nacional de Aprendizaje .php Al ingresar al enlace indicado aparece el formulario para que ingresemos el password del usuario root.

Conexión 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 SENA FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje .

Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP Si el usuario root ya tiene password debe aparecer el siguiente formulario: Si el usuario root todavía no tiene password debe aparecer la siguiente página 8 SENA FAVA .Servicio Nacional de Aprendizaje .

Conexión a Bases de Datos en PHP 9 SENA FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Formación en Ambientes Virtuales de Aprendizaje SENA .1 Crear una Base de Datos desde PhpMyAdmin Para crear nuestra base de datos buscamos en el menú la opción de bases de datos y damos clic: 10 SENA FAVA . Configurar la Base de Datos 2. Conexión a Bases de Datos en PHP 2.Servicio Nacional de Aprendizaje .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Al dar clic en Bases de Datos nos debe aparece una opción para que ingresemos el nombre de la base de datos: Como ejercicio vamos a crear una Base de Datos llamada CENTROMEDICO 11 SENA FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP Casos de Uso De acuerdo a la imagen anterior el Cotejamiento quedó Utf8_spanish_ci. 2.2 Crear Tablas en una Base de Datos.Servicio Nacional de Aprendizaje . Al dar clic en crear se crea la base de datos. Como ejercicio vamos agregar la tabla llamada Pacientes con las siguientes características: 12 SENA FAVA . Podemos verificar en el listado de las bases de datos actuales que aparezca la base de datos que se acaba de crear.Formación en Ambientes Virtuales de Aprendizaje SENA . que hace referencia a caracteres del español.

Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP Para iniciar con la creación de la tabla damos clic en la base de datos centromedico del listado de bases de datos. 13 SENA FAVA . Al dar clic aparece: Pacientes 6 Agregamos los datos Pacientes en Nombre y en número de columnas 6.Servicio Nacional de Aprendizaje .

3.Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje . En la siguiente imagen se muestra la configuración de acuerdo a las características presentadas de la tabla Pacientes.1 La extensión MySQLi A partir de PHP 5 se recomienda utilizar la extensión MySQLi (MySQL Improved) en vez de la tradicional MySQL. • Interfaz orientada a objetos • Soporte para Declaraciones Preparadas • Soporte para Múltiples Declaraciones • Soporte para Transacciones • Mejoradas las opciones de depuración • Soporte para servidor empotrado 14 SENA FAVA . nos lleva a una ventana para que configuremos los campos. • Permite utilizar las mejoras de las últimas versiones del servidor MySQL. Conexión a una Base de Datos MySQL desde PHP 3. Conexión a Bases de Datos en PHP Después de dar clic en continuar.

Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión con el Servidor MySQL 2. Uso de la Base de datos donde podemos: a. c. Conexión a Bases de Datos en PHP Pasos para la Conexión: 1. Envío de operación SQL a la base de datos.2 Conexión al Servidor MySQL y selección de Bases de Datos Código PHP para conectarnos a la Base de Datos CentroMedico SENA 15 FAVA . Selección de la Base de datos 3. Liberar memoria de resultados 4.Servicio Nacional de Aprendizaje . Cerrar la Conexión 3. b. Recepción y tratamiento de los resultados.

Conexión a Bases de Datos en PHP Resultado de la ejecución del código También se puede crear un archivo aparte con las variables que contienen los valores de los parámetros para conectarnos al servidor y a la base de datos.Servicio Nacional de Aprendizaje .php 16 SENA FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA . Código archivo con las variables que contienen los valores de conexión al servidor y a la base de datos: Nombre del archivo: conexionBasesDatos.

En la variable $resultado se guarda lo que devuelve la ejecución de la consulta.3 Métodos.Servicio Nacional de Aprendizaje . 17 SENA FAVA . La variable $resultado se convierte en un objeto del cual podemos obtener la siguiente información con los siguientes métodos o propiedades. Funciones y Propiedades más utilizadas • $objeto->Query($sql): Método que recibe la sentencia SQL y retorna un objeto con el que podemos trabajar con los datos.Formación en Ambientes Virtuales de Aprendizaje SENA . Devuelve FALSE si ocurre un error. Conexión a Bases de Datos en PHP Código archivo que se conecta a la base de datos: 3. • $objConexion->Close(): Cierra la conexión actual a la base de datos.

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP • $resultado->num_rows: Obtiene el número de registros de una consulta. • $resultado->fetch_array() o fetch_all():Devuelve todas las filas en un array asociativo. donde cada columna o campo de la consulta se convierte en una propiedad. 18 SENA FAVA . • $resultado->fetch_object(): Devuelve un objeto.Formación en Ambientes Virtuales de Aprendizaje SENA . o en ambos. numérico.

Retorna un objeto para poder seguir trabajando con la sentencia sql. • $resultado=$objConexion->prepare($sql). Conexión a Bases de Datos en PHP • $resultado->insert_id: Devuelve el id del último registro insertado en la base de datos. los tipos de datos de los parámetros como un string y después los parámetros que se requieran. $parametros): El método bind_param del objeto que recoge lo que retorna el método prepare. la sentencia Sql tiene unos parámetros que se ven reflejados con el carácter interrogación (?) 19 SENA FAVA . • $resultado->free(): Libera la memoria asociada al resultado • $objConexion->prepare($sql): El método prepare del objeto conexión recibe como parámetro una sentencia sql y la mantiene lista para ejecutarla.Formación en Ambientes Virtuales de Aprendizaje SENA . recibie como parámetros.Servicio Nacional de Aprendizaje . • $resultado->bind_param(“tiposdatos”. Ejemplo: En el siguiente ejemplo. • $res=$resultado->execute(): El método execute ejecuta la sentencia sql que se haya creado con el método prepare.

Ejemplo: En el siguiente ejemplo estamos llamando a la página 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.Formación en Ambientes Virtuales de Aprendizaje SENA .1 Método GET Cuando se pasan variables método GET nos indica que estamos pasando variables por la URL.Servicio Nacional de Aprendizaje . Se utilizan unos caracteres para separar las variables así: Carácter ?: cuando referenciamos una o la primera variable Carácter &: este carácter se utiliza para pasar la segunda o las siguientes variables si se requieren. 20 SENA FAVA . Conexión a Bases de Datos en PHP 4. Pasar Variables 4.

normalmente son las que enviamos por los formularios. 21 SENA FAVA . • El encabezado del formulario también tiene una propiedad action donde está relacionada un archivo llamado validarInsertarPaciente2. • En el archivo validarInsertarPaciente2.Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje .2 Método POST El método post.php.php 4.php llegan todas las variables del formulario que vienen siendo todos los campos del mismo (Subrayados en rojo). • En el siguiente ejemplo el encabezado del formulario tiene una propiedad llamada method y tiene como valor post. Conexión a Bases de Datos en PHP Código Archivo pagina.

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP 22 SENA FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP 5.Formación en Ambientes Virtuales de Aprendizaje SENA .1 Insertar En el siguiente ejemplo se construirá el formulario para insertar pacientes. de acuerdo con la imagen a continuación y con la información que se suministró en los objetos anteriores: 23 SENA FAVA . Construcción de formularios CRUD (Create – Read – Update - Delete) 5.Servicio Nacional de Aprendizaje . Primero se implementan los controles al formulario.

Conexión a Bases de Datos en PHP Código del Formulario 24 SENA FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP Código del Archivo que hace la inserción del Paciente Nombre del Archivo: validarInsertarPaciente.php Debemos modificar el código del formulario en el encabezado agregándole el nombre del archivo en el action: 25 SENA FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

ya que así como los llamamos los debemos utilizar en el otro archivo.Formación en Ambientes Virtuales de Aprendizaje SENA . ¿Cuáles son los campos del Formulario? Los nombres de los campos del formulario los debemos tener en cuenta.Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP ¿Qué ocurre cuando damos clic en el Botón del Formulario? Ejecuta el archivo que se encuentra en la propiedad action del formulario y los campos del formulario se pasan por método POST. Resultado de la Ejecución del formulario 26 FAVA .

Conexión a Bases de Datos en PHP Al dar clic en el Botón Enviar aparece el siguiente resultado Ahora vamos a verificar por phpmyadmin si ya aparece el paciente registrado. 27 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje .

2 Consultar Pacientes • Continuando con el ejemplo del centro médico. a continuación se presenta el código para realizar la consulta de datos: 28 FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP 5.

Conexión a Bases de Datos en PHP • Otra forma de consultar e imprimir en pantalla los resultados.Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA . utilizando el método fetch_object() del resultado se presenta a continuación: 29 FAVA .

por lo cual se proporciona como ejemplo el código para listar pacientes usando una tabla.Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP Resultado de la ejecución del archivo consultar Pacientes: Las consultas se presentan con frecuencia en una tabla. tal como se ve en la imagen siguiente: 30 FAVA .

Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP Resultado de la ejecución del archivo consultar Pacientes: 31 FAVA .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Código que permite listar los pacientes en una tabla 32 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Otra forma de Listar en una tabla es utilizando el método fetch_object() como se muestra a continuación: 33 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP 5. vamos actualizar la fecha de nacimiento de Amparo Grisales a 1951-06-25.3 Actualizar Pacientes El siguiente ejemplo presenta el código para modificar datos en la tabla paciente. Código archivo que hace la actualización 34 FAVA . De acuerdo a los pacientes existentes en la base de datos.Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Resultado de la Ejecución Actualización Actualización mediante parámetros 35 FAVA .

En el ejemplo proporcionado se permite la eliminación de un paciente recibiendo como parámetro el número de identificación del mismo. 36 FAVA . se debe proporcionar la funcionalidad que permita ejecutar la sentencia SQL Delete sobre las filas de la base de datos que se desean eliminar.Formación en Ambientes Virtuales de Aprendizaje SENA .4 Borrar Pacientes Para eliminar registros de la base de datos.Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Una vez se han realizado las modificaciones sobre los datos. sin embargo recuerde que la implementación de esta funcionalidad debe obedecer a las reglas de negocio definidas sobre la aplicación. se debe listar la información. 5. tal como quedo modificada.

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP 37 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Se recomienda que todos los archivos del sitio inicien con la sentencia sesión_start() para que se reconozcan las variables de sesión.Formación en Ambientes Virtuales de Aprendizaje SENA . Listar Pacientes después de eliminar 6.Servicio Nacional de Aprendizaje . <?php sessión_start(). Otros Procesos 6. Conexión a Bases de Datos en PHP Posterior a la eliminación se deben visualizar los datos para confirmar que los registros ya no se encuentran en la base de datos.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. ¿Cómo se registra una variable de sesión? $_SESSION[‘variable’] = valor. 38 FAVA .

¿Cómo cerrar una Sesión? 39 FAVA . Conexión a Bases de Datos en PHP ¿Cómo validar que no ingresen a una página sin tener una sesión abierta? En el código anterior si no se encuentra registrada la variable de sesión llamada variable.Servicio Nacional de Aprendizaje . lo regresa al index del sitio con un mensaje que debe iniciar sesión.Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP Al cerrar la sesión lo lleva al index donde muestra el mensaje. Tabla Usuarios en el Sistema 40 FAVA . un asistente.2 Ejemplo Ingreso a un Sistema o Aplicación WEB • Crear una tabla de usuarios que permite validar los datos de ingreso.Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje . el administrador o un paciente • Crear un formulario de ingreso al sistema. 6. Este usuario puede ser un médico.

La forma de encriptar es la siguiente: valorEncriptado = md5(valorAEncriptar). Formulario Ingresar al Sistema o Aplicación 41 FAVA . Conexión a Bases de Datos en PHP Datos Tabla Usuarios El campo usuPassword se encuentra encriptado utilizando la función md5 de php.Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP Formulario Ingresar al Sistema o Aplicación Código Formulario Ingresar al Sistema o Aplicación 42 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Código del archivo que valida el ingreso al Sistema o Aplicación 43 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión 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.Formación en Ambientes Virtuales de Aprendizaje SENA . 44 FAVA .Servicio Nacional de Aprendizaje .

Conexión a Bases de Datos en PHP Código Formulario Asignar Cita 45 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .Servicio Nacional de Aprendizaje .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Código archivo que valida la Asignación de la Cita 46 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA .

Conexión a Bases de Datos en PHP Listar Citas Código Archivo Listar Citas 47 FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Servicio Nacional de Aprendizaje . 48 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA . Conexión a Bases de Datos en PHP 6.4 Atender una Cita Primero se listan solo las citas cuyo estado sea Asignado.

Conexión a Bases de Datos en PHP Código archivo listar Citas por Atender 49 FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Formación en Ambientes Virtuales de Aprendizaje SENA . el cual nos permite hacer una consulta para conocer el paciente de la cita como lo muestra el formulario. 50 FAVA . En éste formulario llega el idCita.Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Formulario Editar la Cita Aquí el Médico puede ingresar las observaciones detectadas en la cita.

Conexión a Bases de Datos en PHP Código Formula Editar Cita Código Formula Editar Cita 51 FAVA .Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA .

Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP Formulario con observaciones Al dar clic en el Botón de Enviar. Código archivo Actualiza la Cita 52 FAVA .Formación en Ambientes Virtuales de Aprendizaje SENA . actualiza el estado y actualiza el campo observaciones.

Formación en Ambientes Virtuales de Aprendizaje SENA . Listado de Citas por Atender después de la Actualización En la siguiente tabla podemos darnos cuenta como se actualizó los datos de la Cita del Paciente Faustino Asprilla. Conexión a Bases de Datos en PHP En el código anterior cambia el estado de la Cita de Asignado a Atendido. 53 FAVA .Servicio Nacional de Aprendizaje . y actualiza el campo observaciones de acuerdo a lo ingresado por el médico.

Converse. API MySQL Original. PHP y MySQL. Park.php.net. Domine el desarrollo de un sitio Web dinámico e interactivo. Heurtel.Servicio Nacional de Aprendizaje .php PHP. consultado en octubre de 2013 y disponible en: http://es. Wiley Pub.php 54 FAVA . 2009. M.net. Dominar phpMyAdmin para una administración efectiva de MySQL.MySQL. T. Delisle. consultado en octubre de 2013 y disponible en: http://es. Packt Publishing (2007) PHP. Ediciones ENI 2009.Formación en Ambientes Virtuales de Aprendizaje SENA . J. Extensión MySQLi.MySQLi. Suehring.net/manual/es/book. O.php. PHP6 and MySQL Bible. Conexión a Bases de Datos en PHP BIBLIOGRAFIA S.net/manual/es/book.

Forma de encrip- tar una cadena. phpMyadmin= Herramienta web en php diseñada especialmente para admi- nistrar bases de datos MySQL. Método GET: La forma de pasar variables mediante la URL Método POST: Forma de pasar variables de forma codificada.Formación en Ambientes Virtuales de Aprendizaje SENA . 55 FAVA . Normalmente se envían cuando se utilizan formularios. Clase definida para conectar a una base de datos MySQL desde php.Servicio Nacional de Aprendizaje . Conexión a Bases de Datos en PHP GLOSARIO md5() = Función que calcula el hash MD5 de una cadena. MySQLi: Extensión de php. $_GET y $_COOKIE Sessión_start(): Inicia una nueva sesión o reanuda la presente. REQUEST: Es un array asociativo que contiene todos los valores de variables tipo $_POST.

copiado y exhibido por terceros si se muestra en los créditos.46 Parra Ana Yaqueline Chavarro Líder línea de producción Santiago Lozada Garcés Atribución. Conexión a Bases de Datos en PHP OBJETO DE APRENDIZAJE Conexión a Datos desde PHP Desarrollador de contenido César Marino Cuéllar Chacón Experto temático Asesor Pedagógico Claudia Milena Hernández Rafael Neftalí Lizcano Reyes Productor Multimedia Carlos Julián Ramírez Benítez Victor Hugo Tabares Carreño Programadores Daniel Eduardo Martínez Díaz LINEA Líder expertos temáticos 25. compartir igual Este material puede ser distribuido. no comercial. No se puede obtener ningún ben- eficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.Servicio Nacional de Aprendizaje .Formación en Ambientes Virtuales de Aprendizaje SENA . 56 SENA FAVA .