Crud en PHP para Principiantes PDF
Crud en PHP para Principiantes PDF
Crud en PHP para Principiantes PDF
Buscar
Hola que tal, en esta entrada vamos a ver cómo crear un CRUD en PHP Java Web (JSP, Hibernate, JSF,
(create, read, update, delete), dedicado aquellos que están iniciándose en la Web Services)
programación Web con PHP.
Programación con PHP (Ajax, Base
Este tutorial es algo muy sencillo, lo que pretendo con esto, es dejar sentado de datos, HTML)
las bases con las que funciona PHP en cuanto al acceso y manipulación de
Spring Framework
datos, además mostrar de lo sencillo que es programar con este lenguaje.
Framework Laravel
Para nalizar con éxito el ejemplo, debes tener un editor como puede ser
Eclipse-PHP o cualquier otro editor de código para PHP, en mi caso utilizo Programación móvil con Android
Sublime Text 2, además necesitas un entorno que te permita desarrollar
JavaScript (Node, Frameworks
aplicaciones para PHP, estos pueden ser: AppServ, XAMPP o WampServer que
JavaScript)
es el que he utilizado en este ejemplo.
Java SE
QUÉ VAMOS HACER? Voto
Vamos hacer un ejemplo muy sencillo, que nos va permitir ingresar, editar, leer Ver resultados
y eliminar los datos de una tabla llamada libro y aunque es una sola tabla con
tan solo 4 campos, te da la pauta su ciente para hacerlo con más tablas que ENCUESTAS
tengan más campos.
Ver resultados
CATEGORÍAS
Programación Android
(https://www.ecodeup.com/category
index.php: Es un archivo que contiene html y lo que muestra son /programacion-android/) (1)
las opciones Ingresar y Ver, las mismas que direccionan a las Programación con Laravel
páginas ingresar.php y mostrar.php respectivamente. (https://www.ecodeup.com/category
conexion.php: Este archivo contiene el código para la conexión con /programacion-con-laravel/) (3)
MySQL.
Programación General
libro.php: Contiene la clase Libro, con sus respectivas propiedades
(https://www.ecodeup.com/category
y métodos getters y setters.
/programacion-general/) (6)
crud_libro.php: Este archivo tiene los métodos crud para la tabla
libros. Programación Java EE
administrar_libro.php: Funciona como un controlador que (https://www.ecodeup.com/category
redirecciona dependiendo la petición hecha desde la vista. /programacion-ee/) (12)
Finalmente se encuentran los archivos ingresar.php, mostrar.php y Programación Java SE
actualizar.php cuyas funciones son fácilmente reconocibles por los (https://www.ecodeup.com/category
nombres que llevan. /programacion-java/) (26)
Programación JavaScript
CÓMO EMPEZAMOS?
(https://www.ecodeup.com/category
Para empezar debes crear una carpeta llamada crud-basico dentro de la /programacion-javascript/) (2)
siguiente ruta C:\wamp64\www.
Programación PHP
Una vez creada, la vas abrir con el editor que utilices, en mi caso con Sublime (https://www.ecodeup.com/category
Text (File->Open Folder). /programacion-php/) (23)
Spring
CREANDO LA BASE DE DATOS
(https://www.ecodeup.com/category
Antes de continuar con la codi cación, vamos a crear una base de datos en /spring/) (1)
MySQL llamada biblioteca con una tabla llamada libro, para esto debes utilizar
WordPress, Diseño Web y Blogging
el siguiente script.
(https://www.ecodeup.com/category
1 CREATE DATABASE IF NOT EXISTS biblioteca; /aprende-crear-tu-blog/) (4)
2
3 USE biblioteca;
4
5
CREATE TABLE `libros` (
`id` int(11) NOT NULL, ARTÍCULOS
6
7
`nombre` varchar(50) COLLATE utf8mb4_spanish2_ci NOT NULL,
`autor` varchar(50) COLLATE utf8mb4_spanish2_ci NOT NULL, RECIENTES
8 `anio_edicion` varchar(50) COLLATE utf8mb4_spanish2_ci NOT NULL
9 ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish2_ci;
10
11 ALTER TABLE `libros` El patrón de diseño Modelo Vista
12 ADD PRIMARY KEY (`id`); Controlador y la librería JSTL
13
14 ALTER TABLE `libros` (https://www.ecodeup.com/el-
15 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1; patron-de-diseno-modelo-vista-
controlador-y-la-libreria-jstl/)
ARCHIVO DE CONEXIÓN A LA BASE DE DATOS
Introducción a JPA
De regreso a Sublime Text dentro de esta carpeta (crud-basico) creas el (https://www.ecodeup.com/introduc
primero de 8 archivos, el primer archivo que creas es el de conexión a la base cion-a-jpa/)
de datos, al mismo que lo vas a llamar conexion.php, y que contendrá el
siguiente código. Cómo crear un CRUD en Java con
JPA e Hibernate
1 <?php
(https://www.ecodeup.com/como-
2 class Db{
3 private static $conexion=NULL; crear-un-crud-en-java-con-jpa-e-
4 private function __construct (){} hibernate/)
5
6 public static function conectar(){
7 $pdo_options[PDO::ATTR_ERRMODE]=PDO::ERRMODE_EXCEPTION;
Cómo crear un web services SOAP
8 self::$conexion= new PDO('mysql:host=localhost;dbname=biblioteca','ro usando JAX-WS en Eclipse
9 return self::$conexion;
10 }
(https://www.ecodeup.com/como-
11 } crear-un-web-services-soap-usando-
12 ?>
jax-ws-en-eclipse/)
Lo que creamos es una clase para conectarnos a la base de datos biblioteca, la Cómo crear un repositorio local con
conexión se la realiza a través de la interfaz PDO, la misma que proporciona Git y subirlo a GitHub
un conjunto de funciones que nos permiten acceder a las tablas de una base de (https://www.ecodeup.com/como-
datos de una manera muy sencilla. crear-un-repositorio-local-con-git-y-
subirlo-a-github/)
El constructor de la clase PDO recibe 3 parámetros: el origen de la base de
datos, el usuario, la clave y un último parámetro que permite manejar alguna
excepción que pueda ocurrir, ya sea debido a que el nombre de la base de SUSCRIPCIÓN
https://www.ecodeup.com/crud-en-php-para-principiantes/ 2/14
10/1/2020 Crud en PHP para principiantes
datos, clave o usuario no fueran los correctos .
Se crea una función estática con la nalidad de que se pueda acceder sin la
necesidad de crear un objeto.
Para que una petición sea enviada y procesada en el servidor debe estar
dentro de un formulario html, además de eso se puede utilizar dos métodos
(method) para el envío: POST o GET. Sin entrar mucho a detalle la diferencia
entre estos dos métodos es que a través de GET los parámetros (por ejemplo,
un id, nombres, apellidos etc..) que se envíen al servidor viajan a través de la
URL, mientras que con POST no lo hacen.
Así mismo se debe poner la página en la que será procesada la petición (action)
que para este caso es el archivo administrar_libro.php que lo crearemos más
adelante.
Algo interesante es el elemento <input type=’hidden’ name=’insertar’
value=’insertar’>, se lo pone como (hidden) oculto puesto que se lo utiliza
como una bandera, para determinar si debe ingresar al código de ingresar en
el archivo administrar_libro.php .
LA CLASE LIBRO
El siguiente archivo libro.php contiene la clase Libro que permite mapear los
atributos a la tabla libros.
https://www.ecodeup.com/crud-en-php-para-principiantes/ 3/14
10/1/2020 Crud en PHP para principiantes
1 <?php
2 class Libro{
3 private $id;
4 private $nombre;
5 private $autor;
6 private $anio_edicion;
7
8 function __construct(){}
9
10 public function getNombre(){
11 return $this->nombre;
12 }
13
14 public function setNombre($nombre){
15 $this->nombre = $nombre;
16 }
17
18 public function getAutor(){
19 return $this->autor;
20 }
21
22 public function setAutor($autor){
23 $this->autor = $autor;
24 }
25
26 public function getAnio_edicion(){
27 return $this->anio_edicion;
28 }
29
30 public function setAnio_edicion($anio_edicion){
31 $this->anio_edicion = $anio_edicion;
32 }
33 public function getId(){
34 return $this->id;
35 }
36
37 public function setId($id){
38 $this->id = $id;
39 }
40 }
41 ?>
https://www.ecodeup.com/crud-en-php-para-principiantes/ 4/14
10/1/2020 Crud en PHP para principiantes
1 <?php
2 // incluye la clase Db
3 require_once('conexion.php');
4
5 class CrudLibro{
6 // constructor de la clase
7 public function __construct(){}
8
9 // método para insertar, recibe como parámetro un objeto de tipo libro
10 public function insertar($libro){
11 $db=Db::conectar();
12 $insert=$db->prepare('INSERT INTO libros values(NULL,:nombre,:autor,
13 $insert->bindValue('nombre',$libro->getNombre());
14 $insert->bindValue('autor',$libro->getAutor());
15 $insert->bindValue('anio_edicion',$libro->getAnio_edicion());
16 $insert->execute();
17
18 }
19
20 // método para mostrar todos los libros
21 public function mostrar(){
22 $db=Db::conectar();
23 $listaLibros=[];
24 $select=$db->query('SELECT * FROM libros');
25
26 foreach($select->fetchAll() as $libro){
27 $myLibro= new Libro();
28 $myLibro->setId($libro['id']);
29 $myLibro->setNombre($libro['nombre']);
30 $myLibro->setAutor($libro['autor']);
31 $myLibro->setAnio_edicion($libro['anio_edicion']);
32 $listaLibros[]=$myLibro;
33 }
34 return $listaLibros;
35 }
36
37 // método para eliminar un libro, recibe como parámetro el id del libro
38 public function eliminar($id){
39 $db=Db::conectar();
40 $eliminar=$db->prepare('DELETE FROM libros WHERE ID=:id');
41 $eliminar->bindValue('id',$id);
42 $eliminar->execute();
43 }
44
45 // método para buscar un libro, recibe como parámetro el id del libro
46 public function obtenerLibro($id){
47 $db=Db::conectar();
48 $select=$db->prepare('SELECT * FROM libros WHERE ID=:id');
49 $select->bindValue('id',$id);
50 $select->execute();
51 $libro=$select->fetch();
52 $myLibro= new Libro();
53 $myLibro->setId($libro['id']);
54 $myLibro->setNombre($libro['nombre']);
55 $myLibro->setAutor($libro['autor']);
56 $myLibro->setAnio_edicion($libro['anio_edicion']);
57 return $myLibro;
58 }
59
60 // método para actualizar un libro, recibe como parámetro el libro
61 public function actualizar($libro){
62 $db=Db::conectar();
63 $actualizar=$db->prepare('UPDATE libros SET nombre=:nombre, autor=:a
64 $actualizar->bindValue('id',$libro->getId());
65 $actualizar->bindValue('nombre',$libro->getNombre());
66 $actualizar->bindValue('autor',$libro->getAutor());
67 $actualizar->bindValue('anio',$libro->getAnio_edicion());
68 $actualizar->execute();
69 }
70 }
71 ?>
https://www.ecodeup.com/crud-en-php-para-principiantes/ 5/14
10/1/2020 Crud en PHP para principiantes
1 <?php
2 //incluye la clase Libro y CrudLibro
3 require_once('crud_libro.php');
4 require_once('libro.php');
5
6 $crud= new CrudLibro();
7 $libro= new Libro();
8
9 // si el elemento insertar no viene nulo llama al crud e inserta un libro
10 if (isset($_POST['insertar'])) {
11 $libro->setNombre($_POST['nombre']);
12 $libro->setAutor($_POST['autor']);
13 $libro->setAnio_edicion($_POST['edicion']);
14 //llama a la función insertar definida en el crud
15 $crud->insertar($libro);
16 header('Location: index.php');
17 // si el elemento de la vista con nombre actualizar no viene nulo, llama al
18 }elseif(isset($_POST['actualizar'])){
19 $libro->setId($_POST['id']);
20 $libro->setNombre($_POST['nombre']);
21 $libro->setAutor($_POST['autor']);
22 $libro->setAnio_edicion($_POST['edicion']);
23 $crud->actualizar($libro);
24 header('Location: index.php');
25 // si la variable accion enviada por GET es == 'e' llama al crud y elimina u
26 }elseif ($_GET['accion']=='e') {
27 $crud->eliminar($_GET['id']);
28 header('Location: index.php');
29 // si la variable accion enviada por GET es == 'a', envía a la página actual
30 }elseif($_GET['accion']=='a'){
31 header('Location: actualizar.php');
32 }
33 ?>
https://www.ecodeup.com/crud-en-php-para-principiantes/ 6/14
10/1/2020 Crud en PHP para principiantes
1 <?php
2 //incluye la clase Libro y CrudLibro
3 require_once('crud_libro.php');
4 require_once('libro.php');
5 $crud= new CrudLibro();
6 $libro=new Libro();
7 //busca el libro utilizando el id, que es enviado por GET desde la vista most
8 $libro=$crud->obtenerLibro($_GET['id']);
9 ?>
10 <html>
11 <head>
12 <title>Actualizar Libro</title>
13 </head>
14 <body>
15 <form action='administrar_libro.php' method='post'>
16 <table>
17 <tr>
18 <input type='hidden' name='id' value='<?php echo $libro->getId()?>'>
19 <td>Nombre libro:</td>
20 <td> <input type='text' name='nombre' value='<?php echo $libro->getNo
21 </tr>
22 <tr>
23 <td>Autor:</td>
24 <td><input type='text' name='autor' value='<?php echo $libro->getAuto
25 </tr>
26 <tr>
27 <td>Fecha Edición:</td>
28 <td><input type='text' name='edicion' value='<?php echo $libro->getA
29 </tr>
30 <input type='hidden' name='actualizar' value'actualizar'>
31 </table>
32 <input type='submit' value='Guardar'>
33 <a href="index.php">Volver</a>
34 </form>
35 </body>
36 </html>
RESULTADO FINAL
Como se puede ver es algo sencillo, pero que muestra a través de un CRUD en
PHP lo fácil y rápido que es desarrollar aplicaciones con PHP
ARTÍCULOS RELACIONADOS:
Te gustaría aprender a programar con PHP de manera profesional y sobre
todo práctica?, aprovecha mi curso Aprende a crear una Aplicación Web de
Historias Clínicas con PHP (https://cursoswebenlinea.com/).
Si te gustó este tutorial no olvides comentar o compartirlo, nos vemos en la
próxima entrada.
Nombre Email
SUSCRIBIRME
https://www.ecodeup.com/crud-en-php-para-principiantes/ 7/14
10/1/2020 Crud en PHP para principiantes
(h
tt
ps
://
w
w
w.
y
o
ut
u
b
(h e.
tt c
ps o
:// m
ec /c
.li h
n a
k n
(h (h e n
tt tt di el
p: p: n. /
// // c U
w w o C
w w m Vi
w. w. /i A
pr fa n/ h-
o ce el P
gr b iv 1
a o ar q
mo - m
ac k. la Z
io c rg 2-
nf o o- 5
ul m (h b F-
ls /e tt 4 U
ta li p: 5 T
ck v // 0 x
.c ar el 3 9
o la iv 9 M
m rg ar 9 lA
) o) l) 7) )
Blogger y Developer Java Full Stack, aprendiendo y compartiendo conocimientos.
Aprende a crear aplicaciones Java Web desde cero en:
https://programacionfullstack.com/
10 Prácticas imprescindibles para ser un buen Introducción a la programación con PHP: sintaxis,
programador (https://www.ecodeup.com/10- variables y arrays
practicas-imprescindibles-para-ser-un-buen-
programador/)
ARTÍCULOS RECOMENDADOS
https://www.ecodeup.com/crud-en-php-para-principiantes/ 8/14
10/1/2020 Crud en PHP para principiantes
Responder
Elivar Largo
5 abril, 2018 at 2:07 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-6424)
Gracias a ti por tu comentario Jonathan. Saludos
Responder
Cristian
12 abril, 2018 at 4:54 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-6560)
No haces videotutoriales?
Responder
Elivar Largo
17 abril, 2018 at 12:25 pm (https://www.ecodeup.com/crud-en-php-
para-principiantes/#comment-6636)
De momento no, pero tengo algunos que hace algún tiempo hice, aquí
puedes revisarlos https://www.youtube.com/channel/UCViAh-P1qmZ2-5F-UTx9MlA?
view_as=subscriber (https://www.youtube.com/channel/UCViAh-P1qmZ2-5F-UTx9MlA?
https://www.ecodeup.com/crud-en-php-para-principiantes/ 9/14
10/1/2020 Crud en PHP para principiantes
view_as=subscriber)
Responder
Daniel
4 mayo, 2018 at 11:23 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-6928)
Me aparece un error en la linea 23 de crud_libro.php
$listaLibros=[];
Me dice: Unexpected ‘[‘
podrias ayudarme?
Responder
Elivar Largo
8 mayo, 2018 at 5:22 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-7034)
Que versión de PHP tienes? puede ser la creación del arreglo, en diferentes
versiones de PHP se crea de diferente manera, prueba poniendo $listaLibros[];
Responder
Rodrigo
19 octubre, 2018 at 8:41 am
(https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-9833)
En que version de PHP funciona este proyecto, yo estoy realizandolo en PHP
Version 5.4.3 y me tira en pagina mostrar.php “( ! ) Warning: Invalid argument
supplied for foreach()C:\wamp\www\A_CRUD\PROYECTO2\mostrar.php on
line 25” (linea 25 )
y en pagina actualizar “( ! ) Fatal error: Call to unde ned method
CrudLibro::obtenerLibro() in
C:\wamp\www\A_CRUD\PROYECTO2\actualizar.php on line 10” (linea 10
$libro=$crud->obtenerLibro($_GET[‘id’]);)
gracias
Responder
Elivar Largo
(http://www.programacionfullstack.co
m)
19 octubre, 2018 at 8:49 am
(https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-9834)
Con la versión 5.6 de PHP, prueba con esa versión y me
comentas como te va.
Responder
Rodrigo
19 octubre, 2018 at 10:07 am
(https://www.ecodeup.com/crud-
en-php-para-
principiantes/#comment-9839)
Hola Gracias por la pronta respuesta, instale la
version 5,6 y se repite el error.
Victor
18 mayo, 2018 at 9:57 am (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-7271)
Tienes un correo para contactarte, tengo un problema
Responder
https://www.ecodeup.com/crud-en-php-para-principiantes/ 10/14
10/1/2020 Crud en PHP para principiantes
Elivar Largo
20 mayo, 2018 at 10:50 am (https://www.ecodeup.com/crud-en-php-
para-principiantes/#comment-7307)
Hola Victor, puedes dejar el problema que tienes en los comentarios.
Saludos
Responder
ivan
17 julio, 2018 at 1:04 am (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-8498)
hola que tal, tengo un problema en una linea de codigo, precisamente con la variable
accion, no logro entender de donde la sacar o que funcion tiene
Responder
Responder
neomar
10 agosto, 2018 at 8:58 am (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-8847)
que version de php se esta utilizando?
Responder
Responder
Jhonny Rodriguez
27 septiembre, 2018 at 8:31 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-9422)
Buenas noches
me sale este error?
Not Found
The requested URL /taller/administrar_libro.php was not found on this server.
Responder
Responder
ala
4 diciembre, 2018 at 12:00 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-10368)
Hola buenas tardes, tengo problemas con el boton guardar.
https://www.ecodeup.com/crud-en-php-para-principiantes/ 11/14
10/1/2020 Crud en PHP para principiantes
me sale esto
The requested URL was not found on this server. The link on the referring page seems to be wrong or
outdated. Please inform the author of that page about the error.
Responder
Responder
daniel
5 diciembre, 2018 at 8:09 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-10390)
hola me sale este error
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not
de ned in C:\xampp\htdocs\YOOO\crud_agente.php:18 Stack trace: #0
C:\xampp\htdocs\YOOO\crud_agente.php(18): PDOStatement->execute() #1
C:\xampp\htdocs\YOOO\administrar_agente.php(18): Crudagente->insertar(Object(agente)) #2 {main}
thrown in C:\xampp\htdocs\YOOO\crud_agente.php on line 18
Responder
Responder
Jose
20 junio, 2019 at 9:38 am (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-13635)
Disculpa en que ruta se coloca la base de datos “Biblioteca”? o donde quiera que este el
programa lo detecta? Ya que yo lo metí en la carpeta del proyecto y me salta el error “Unknown database
‘biblioteca’ “
Responder
Responder
Jose
20 junio, 2019 at 11:28 am
(https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-13643)
Tienes razón no lo estaba ejecutando, gracias!
Responder
https://www.ecodeup.com/crud-en-php-para-principiantes/ 12/14
10/1/2020 Crud en PHP para principiantes
Jesus
26 septiembre, 2019 at 3:16 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-14218)
Me aparece un error en la linea 23 de crud_libro.php
$listaLibros=[];
utilizo la version de PHP 7
Responder
Responder
Eduardo
20 octubre, 2019 at 8:06 am (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-14331)
Hola , me aparece este error
Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[HY000] [1045] Access denied
for user ‘root’@’localhost’ (using password: NO)’ in C:\Program Files (x86)\Ampps\www\conexion.php on
line 8
Responder
Responder
Christian Alfaro
23 diciembre, 2019 at 6:42 pm (https://www.ecodeup.com/crud-en-php-para-
principiantes/#comment-14456)
Hola buenas tardes, intente realizar la practica pero no me realiza la función de actualizar.
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not
de ned in C:\xampp\htdocs\crud-basico\crud_libro.php:68 Stack trace: #0 C:\xampp\htdocs\crud-
basico\crud_libro.php(68): PDOStatement->execute() #1 C:\xampp\htdocs\crud-
basico\administrar_libro.php(23): CrudLibro->actualizar(Object(Libro)) #2 {main} thrown in
C:\xampp\htdocs\crud-basico\crud_libro.php on line 68
Responder
Responder
DEJAR UN COMENTARIO
https://www.ecodeup.com/crud-en-php-para-principiantes/ 13/14
10/1/2020 Crud en PHP para principiantes
Comment
Name Email
Website URL
Guardar mi nombre, correo electrónico y sitio web en este navegador para la próxima vez que haga
un comentario.
Añadir Comentario
Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios
(https://akismet.com/privacy/).
https://www.ecodeup.com/crud-en-php-para-principiantes/ 14/14