Creando CRUD en PHP: operaciones básicas para la gestión de bases de datos

Documentos relacionados
PHP y Acceso a Datos

MANUAL DE PROGRAMACIÓN PARA BASES DE DATOS 1.0 MySQL

Manejo de Bases de Datos Mysql en Lenguaje C

MySQL por línea de comandos

Microsoft Virtual Academy

PHP y Acceso a Datos

Data Bases 2. La sintaxis precisa de esta función es: mysql_pconnect (nombre del servidor, el usuario de la base de datos, password ) ;

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Creación de una Base de datos

Selección de registros de una base de datos

Creando una capa de abstracción con PHP y mysqli

1 Objetivo. Diseño de Interfaces Hombre Máquina. Práctica 6 Acceso a bases de datos

Unidad III. Bases de Datos

Configuración de MySQL con NetBeans

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

Base de Datos Conjunto de información organizada especialmente para búsqueda y entrada de datos. Base de Datos: Ejemplo Usuarios

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

PHP. Tipos de campo en MySql char(longitud): Cualquier carácter. El campo tendrá siempre la misma longitud. Máximo de 255 caracteres.

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Detalles del Tutorial. Publicidad. Dificultad: Novato Duración: 30 min CURSOS / LARAVEL PUBLICADO POR RAMSES VELASQUEZ EL 3 SEP CON 0 COMENTARIOS

Administración de usuarios en Oracle - Administración de Oracle - Orasite.com

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR DE CORREO EXIM 4.8 EN FEDORA 20 FRAYBA SERYEY OTALORA TORRES JOSE EDUARDO JAIMES BARRERA

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

Formatos para prácticas de laboratorio

Programación PHP de bases de datos mysql

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

2 - Para instalar PostgreSQL. # apt-get install postgresql

Gestión de bases de datos de mysql desde Dreamweaver

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

1.- CREACIÓN DE CONSULTAS.

2.4 Luego, en la pestaña superior al lado de la barra del menú, elegir Desarrollador de aplicaciones

SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.

PHP Y BASES DE DATOS. Introducción a SQL

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

UNIDAD 4. MODIFICAR TABLAS DE DATOS

Gestión de la Información Práctica 1

A continuación se presenta la forma en que se puede conectar PHP con el gestor de bases de datos MySQL.

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

Acceso a bases de datos MySQL con PHP

Transacciones, copias de seguridad. Xochitl Clemente Parra Armando Méndez Morales

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

COMBINAR CORRESPONDENCIA

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

GESTORES GESTORES DE BASES DE DATOS

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

PHP/Mysql Pasos fundamentales

PHP 7 Desarrollar un sitio web dinámico e interactivo

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Capítulo 6. Otros objetos de la base de datos

Introducción al SQL de InterBase: DDL y DML

ACCEDER A BITÁCORA DE TRABAJO SQL SERVER

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 3.

InterBase / Firebird: el uso de eventos

CÓMO CREAR UNA BASE DE DATOS MySQL PARA PRACTICAR CON PHP. ACCESO AL GESTOR phpmyadmin. (CU00839B)

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Curso de MySQL y Java

RICHARD ALEXANDER BETANCUR SIERRA

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP

T06 Definición y manipulación de datos

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo.

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Insertar Datos en Tablas

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

Contenidos. 1 Aspectos de seguridad 2 El Sistema de Privilegios 3 Conexión n al servidor 4 Control de Acceso 5 Ejercicios

Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.

Blind SQL Injectión. Práctico

EJERCICIOS DE CONSULTAS SQL

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

Introducción SQL. Ges2ón y Modelación de Datos María Constanza Pabón

INSTITUTO POLITÉCNICO NACIONAL. ESCUELA SUPERIOR DE CÓMPUTO. WEB II. MySQL. Que el alumno aprenda a usar el servidor de base de datos MySql.

Desarrollo Web en Entorno Servidor

M. C. Gustavo Alfonso Gutiérrez Carreón

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

Gestión de bases de datos de mysql desde Dreamweaver

EJEMPLO 1. CUADROS DE TEXTO

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

Trabajos de Ampliación. Bases de datos NoSQL.

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

SQLModificaciones a la BD

Integridad Referencial. Restricciones (constraints)

Laboratorio Informix. Stored Procedures Triggers

Grandes volúmenes de datos Particionamiento. bases de datos

PROCEDIMIENTOS ALMACENADOS

La sintaxis básica para definir una clase es la que a continuación se muestra:

TRIGGER LEONEL CADOSO ROMERO 1

Tema: MAPEO OBJETO RELACIONAL (ORM) - ADODB

Visual Basic.net Completo

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL

CESAR BUSTAMANTE

Visual Basic.net Completo

Procesos e Hilos en C

Transcripción:

Creando CRUD en PHP: operaciones básicas para la gestión de bases de datos

Cualquier portal web utiliza algún sistema de base de datos para almacenar la información que luego mostrará en sus páginas. Para ello es necesario ejecutar una serie de acciones básicas para su buen funcionamiento, que quedan referenciadas bajo el acrónimo de CRUD: Create, Read, Update y Delete. Para la creación de nuestro CRUD utilizaremos PDO, una capa abstracta para PHP que nos permite realizar consultas a bases de datos y que soporta una gran variedad de motores diferentes como MySQL, SQLServer, Oracle Crear tabla base de datos Lo primero de todo será crear la tabla de la base de datos que vamos a gestionar con nuestro CRUD. En nuestro caso usaremos como ejemplo una tabla donde almacenaremos información sobre vehículos como puede ser la marca, el modelo o el número de kilómetros que tiene. Las instrucciones para crear esta tabla son las siguientes: CREATE TABLE `vehiculo` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `marca` VARCHAR( 255 ) NOT NULL, `modelo` VARCHAR( 255 ) NOT NULL, `kilometros` INT NOT NULL ) ENGINE = INNODB; Una vez creada la tabla también crearemos nuestra entidad "vehiculo", que será la data a mapear ya sea para listar, registrar, eliminar o modificar sobre la base de datos. En este caso el código PHP que utilizaremos será: class Vehiculo private $id; private $marca; private $modelo; private $kilometros; public function GET($k) return $this->$k; public function SET($k, $v) return $this->$k = $v; El método GET($k) se encarga de devolver el valor del atributo indicado. En cambio, el método SET($k, $v) asignará el valor $v al atributo indicado en el parámetro $k.

Clase de la lógica de negocio Una vez completados estos pasos será el momento de empezar con la lógica de negocio, que nos permitirá realizar las acciones sobre nuestra base de datos. Esta clase estará formada por varios métodos, cada uno realiza una acción del CRUD. Veamos a continuación cada uno de los métodos que forman parte de esta clase de negocio. Constructor El constructor se encargará de crear el objeto PDO que luego utilizaremos para ejecutar nuestras instrucciones en la base de datos. El código para esto es: public function CONSTRUCT() $this->pdo = new PDO('mysql:host=localhost;dbname=vehiculo', 'root', ''); $this->pdo->setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); catch(exception $e) En el código anterior lo más reseñable es la siguiente línea: $this->pdo = new PDO('mysql:host=localhost;dbname=vehiculo', 'root', 'xxxxxx'); Aquí lo que debemos hacer es indicar los datos que utilizaremos para conectarnos a la base de datos. Estos datos son: - host: nombre del servidor en el que está ubicada la base de datos. Normalmente suele ser "localhost". - dbname: Nombre de la base de datos. En nuestro ejemplo la hemos llamado "vehiculo". - dbuser: Se trata del nombre del usuario que tendrá acceso a la base de datos. En nuestro caso el usuario es "root". - dbpass: Sería la contraseña asociada al usuario de base de datos. En nuestro ejemplo le hemos puesto "xxxxxx".

Función listar resultados Una vez que hemos visto el constructor podemos empezar a analizar cada una de las operaciones que forman parte del CRUD. La primera de ellas será la que nos permita sacar un listado de los registros guardados en base de datos. El código encargado de esto es el siguiente: public function Listar() $result = array(); $stm = $this->pdo->prepare("select * FROM vehiculo"); $stm->execute(); foreach($stm->fetchall(pdo::fetch_obj) as $r) $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->marca); $alm-> SET('modelo', $r->modelo); $alm-> SET('kilometros', $r->kilometros); $result[] = $alm; return $result; catch(exception $e) Lo primero que haremos será crearnos un array de nombre $result donde almacenaremos los diferentes vehículos que forman parte de nuestra base de datos. Esto se hace mediante la siguiente instrucción: $result = array(); A continuación indicamos la instrucción que queremos ejecutar sobre la base de datos: $stm = $this->pdo->prepare("select * FROM vehiculo"); $stm->execute(); En este caso hemos indicado mediante la instrucción SQL "SELECT * FROM vehiculo" que nos devuelva todos los registros almacenados en la base de datos. El encargado de ejecutar esta instrucción SQL será el método "execute()".

Una vez ejecutada la instrucción tendremos que recorrer todos esos registros para crear los diferentes vehículos, a fin de almacenarlos en nuestro array $result. foreach($stm->fetchall(pdo::fetch_obj) as $r) $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->marca); $alm-> SET('modelo', $r->modelo); $alm-> SET('kilometros', $r->kilometros); $result[] = $alm; Por último, sólo falta devolver el array que contiene la información para poder mostrarla de la forma que queramos en nuestra página web. return $result; Función recuperar un vehículo determinado La siguiente operación que vamos a mostrar es aquella que permite recuperar un único resultado de la base de datos. El funcionamiento es muy similar al caso anterior, pero con la diferencia de que en la consulta SQL se le indicará el id del vehículo que queremos recuperar: public function recuperarvehiculo($id) $stm = $this->pdo ->prepare("select * FROM vehiculo WHERE id =?"); $stm->execute(array($id)); $r = $stm->fetch(pdo::fetch_obj); $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->nombre); $alm-> SET('modelo', $r->apellido); $alm-> SET('kilometros', $r->sexo); return $alm; catch (Exception $e)

Debemos fijarnos en que a este método se le pasa como argumento el id del vehículo que queremos recuperar de la base de datos. public function recuperarvehiculo($id) Como hemos dicho anteriormente, lo que se hace en este caso es indicar en la instrucción SQL que se quiere recuperar un vehículo en concreto identificado mediante su "id". Una vez ejecutada la sentencia, se almacena en un objeto $r donde después podremos sacar los valores de cada uno de los atributos del objeto vehículo. $stm = $this->pdo->prepare("select * FROM vehiculo WHERE id =?"); $stm->execute(array($id)); $r = $stm->fetch(pdo::fetch_obj); Después, creamos un objeto vehículo vacío donde colocaremos la información recuperada de la base de datos. $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->marca); $alm-> SET('modelo', $r->modelo); $alm-> SET('kilometros', $r->kilometros); Por último, devolvemos el objeto vehículo que hemos creado y donde hemos almacenado la información recuperada de la base de datos. return $alm; Este objeto podrá ser utilizado en nuestra página web para mostrar los datos de ese vehículo.

Función guardar Vamos a seguir ahora con la función que nos permite guardar nuevos vehículos en nuestra base de datos. El código sería el siguiente. public function Registrar(Vehiculo $data) $sql = "INSERT INTO vehiculo (marca,modelo,kilometros) VALUES (?,?,?)"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros') ) ); catch (Exception $e) Al igual que en el caso anterior, a esta función se le pasa como parámetro un objeto vehículo que contiene la información que vamos almacenar en base de datos. Esta información la hemos podido sacar de un formulario, un archivo xml o incluso otra base de datos. public function Registrar(Vehiculo $data) Lo siguiente será crear la instrucción SQL que insertará la información en la base de datos y que corresponde al siguiente trozo de código. $sql = "INSERT INTO vehiculo (marca,modelo,kilometros) VALUES (?,?,?)"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros') ) ); En el código anterior se observa que se hace uso del método " GET()" para conseguir la información de cada uno de los atributos del objeto vehículo que se le ha pasado por parámetro.

Función modificar La función modificar es muy similar al caso anterior donde hemos visto el proceso de registro. public function modificar(vehiculo $data) $sql = "UPDATE vehiculo SET marca =?, modelo =?, kilometros =? WHERE id =?"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros'), $data-> GET('id') ) ); catch (Exception $e) Como en el anterior, al método se le pasaría como argumento un objeto vehículo con los datos a modificar. public function modificar(vehiculo $data) A continuación, se crearía la instrucción SQL que se encargaría de modificar la información, de forma similar a lo visto en el caso anterior. $sql = "UPDATE vehiculo SET marca =?, modelo =?, kilometros =? WHERE id =?"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros'), $data-> GET('id') ) );

Función eliminar La última de las funciones sería la encargada de eliminar los registros de la base de datos. El código sería el siguiente: public function eliminar($id) $stm = $this->pdo ->prepare("delete FROM vehiculo WHERE id =?"); $stm->execute(array($id)); catch (Exception $e) Lo que se pasa por parámetros a la función es el id del vehículo que vamos a eliminar. public function eliminar($id) Ese id, será el que utilicemos para crear la consulta SQL encargada de realizar el borrado del registro. $stm = $this->pdo->prepare("delete FROM vehiculo WHERE id =?"); $stm->execute(array($id)); Al igual que en todos los casos anteriores, el método "execute" será el encargado de ejecutar la instrucción SQL.

Código completo de nuestro CRUD A continuación, os dejamos el código completo de la clase que contendrá todas las funciones del CRUD que hemos explicado. class VehiculoModel private $pdo; public function CONSTRUCT() $this->pdo = new PDO('mysql:host=localhost;dbname=vehiculo', 'root', 'xxxxxx'); $this->pdo->setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); catch(exception $e) public function Listar() $result = array(); $stm = $this->pdo->prepare("select * FROM vehiculo"); $stm->execute(); foreach($stm->fetchall(pdo::fetch_obj) as $r) $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->marca); $alm-> SET('modelo', $r->modelo); $alm-> SET('kilometros', $r->kilometros); $result[] = $alm; return $result; catch(exception $e) public function recuperarvehiculo($id) $stm = $this->pdo ->prepare("select * FROM vehiculo WHERE id =?");

$stm->execute(array($id)); $r = $stm->fetch(pdo::fetch_obj); $alm = new Vehiculo(); $alm-> SET('id', $r->id); $alm-> SET('marca', $r->marca); $alm-> SET('modelo', $r->modelo); $alm-> SET('kilometros', $r->kilometros); return $alm; catch (Exception $e) public function eliminar($id) $stm = $this->pdo ->prepare("delete FROM vehiculo WHERE id =?"); $stm->execute(array($id)); catch (Exception $e) public function modificar(vehiculo $data) $sql = "UPDATE vehiculo SET marca =?, modelo =?, kilometros =? WHERE id =?"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros'), $data-> GET('id') ) ); catch (Exception $e) public function Registrar(Vehiculo $data)

$sql = "INSERT INTO vehiculo (marca,modelo,kilometros) VALUES (?,?,?)"; $this->pdo->prepare($sql) ->execute( array( $data-> GET('marca'), $data-> GET('modelo'), $data-> GET('kilometros') ) ); catch (Exception $e) Estas mismas operaciones que hemos creado para nuestra tabla vehículo, la podemos utilizar para cualquier otra, modificando el nombre de los campos. El pasó final, sería utilizar algo de código HTML para crear la estructura que permitiese elegir entre las diferentes acciones que hemos explicado a lo largo de nuestro White Paper.