FormInsertPHP: Insertando Valores en una Tabla 'usuario' de la base de datos 'conexionpdo' de forma segura
Primer Paso: En Primer lugar necesitaremos crear la Base de Datos 'conexionpdo' y una tabla a la que llamaremos 'usuario'. Veamos como hacerlo:Creando Base de datos conexionpdo
- Entonces desde nuestro Gestor de Base de Datos 'phpMyAdmin', crearemos la base de datos llamada 'conexionpdo':
- Como podemos ver hemos creado una base de datos llamada "conexionpdo" desde nuestro gestor phpMyAdmin, ahora procederemos a crear nuestra tabla llamada "usuario".
Creando la Tabla usuario
- Para este proceso procedemos a entrar al área que nos brinda phpMyAdmin para escribir nuestras consultas a la base de datos, presionando el botón superior SQL:
- Ahora procedemos a realizar la siguiente consulta para crear nuestra tabla "usuario":
create TABLE usuario ( id_usuario INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(40) NOT NULL, usuario VARCHAR(20) NOT NULL, email VARCHAR(40) NOT NULL, edad VARCHAR(4) NOT NULL, PRIMARY KEY (id_usuario) );
- Para este proceso crearemos un archivo llamado 'conexion.php', el cual estará alojado dentro de la carpeta "config"; por motivos de organización (config/conexion.php):
Archivo config/conexion.php
<?php /** * Created by PhpStorm. * User: Miguel * Date: 15/04/2017 * Time: 15:48 */ /** * Proyecto Conexión a una base de datos MySQL * Estoy utilizando PHP 7 * Primer Paso: He creado una base de datos llamada: 'conexionpdo' * Crear una tabla llamada 'usuario' que * tendrá 5 campos: id_usuario, nombre, usuario, email y edad. * usaré todos esos campos como not null porque son obligatorios o requeridos */ /** * Realizo una conexión a la base de datos MySQL con la extensión PDO de PHP */ /** * Creando las variables globales con los valores de aceeso a mi * MySQL */ define('DB_USER', 'root'); //nombre del usuario DB_USER define('DB_PASSWORD', '***********'); //contraseña de MySQL DB_PASSWORD define('DSN', 'mysql:host=localhost;port=3306;dbname=conexionpdo'); /** * dsn data source name, esta compuesto de los siguientes elementos: * prefijo DSN = mysql, * host = nombre del servidor donde esta mysql = localhost * port = número de la puerta por donde localhost interactua * dbname = nombre de la base de datos que en nuestro caso es 'conexionpdo' **/ $options = array ( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); /** * ahora creo el objeto $dbc (database connection) y paso por él las * variables globales antes definidas y la matriz * dentro del bloque try catch (para más informaciones, les dejo este link: * http://php.net/manual/en/language.exceptions.php) */ try{ $dbc = new PDO(DSN, DB_USER, DB_PASSWORD, $options); }catch(PDOException $ex){ echo $ex->getMessage(); }
- En este script hemos utilizado la extensión PDO para conectarnos a nuestra Base de datos llamada "conexionpdo". Para quien desea conocer más acerca de esta extensión y su forma de uso, los invito a vistar el siguiente site: Connect to MySQL with PHP.
Tercer Paso: Construyendo nuestro formulario HTML5 utilizando algunas dependencias bootstrap para realizar la maquetación y las validaciones respectivas.
- Para este proceso crearemos un archivo llamado 'index.php', el cual albergará el código HTML5 de nuestro formulario de ingreso de datos a nuestra base de datos "conexionpdo"; este estará alojado en la carpeta principal de nuestro proyecto:
Archivo index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ingresando Datos a Base de datos githubconexionpdo</title> <link type="text/css" rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.0/css/bootstrapValidator.min.css" /> <link type="text/css" rel="stylesheet" href="css/styles.css" /> <link type="text/css" rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css" /> <link type="text/css" rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.js" type="text/javascript"></script> <script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script type="application/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script type="application/javascript" src="js/script.js"></script> <script type="application/javascript" src="js/validaciones.js"></script> </head> <body> <div class="container"> <form action="http://localhost/GitHub/ConeccionPDO/controladores/save.php" method="post" class="well form-horizontal" id="contact_form"> <fieldset> <!-- Form Name --> <legend>Ingrese Registros a githubconexionpdo!</legend> <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label">Nombre</label> <div class="col-md-4 inputGroupContainer"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input name="nombre" class="form-control" type="text" /> </div> </div> </div> <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label" >Last Name</label> <div class="col-md-4 inputGroupContainer"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input name="usuario" class="form-control" type="text" /> </div> </div> </div> <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label">E-Mail</label> <div class="col-md-4 inputGroupContainer"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span> <input name="email" class="form-control" type="text" /> </div> </div> </div> <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label">Edad</label> <div class="col-md-4 inputGroupContainer"> <div class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-time"></i></span> <input name="edad" min= "10" max="101" class="form-control" type="number" /> </div> </div> </div> <!-- Button --> <div class="form-group"> <label class="col-md-4 control-label"></label> <div class="col-md-4" align="center"> <button type="submit" class="btn btn-warning">Enviar <span class="glyphicon glyphicon-send"></span></button> </div> </div> </fieldset> </form> </div> </body> </html>
Cuarto Paso: Ahora es el momento de crear nuestro archivo "save.php"; el cual contiene el script que realiza el proceso de envío de nuestros registros ingresados desde el formulario creado en "index.php". Este archivo estará alojado en la carpeta "controladores"
- El archivo save.php contiene un script PHP, el cual incluye al archivo conexion.php para tener acceso a la base de datos 'conexionpdo'; luego este recibe los datos que son enviados via post desde el formulario creado en index.php; para finalizar realiza una consulta a la base de datos MySQL utilizando sentencias preparadas para evitar inyecciones peligrosas a nuestra base de datos, veamos:
Archivo controladores/save.php
<?php /** * Created by PhpStorm. * User: Miguel * Date: 15/04/2017 * Time: 22:48 */ include '../config/conexion.php'; //recibiendo valores del formulario via post de index.php $nombre = $_POST['nombre']; $usuario = $_POST['usuario']; $email = $_POST['email']; $edad = $_POST['edad']; /** * @param $nombre * @param $usuario * @param $email * @param $edad * @param $dbc */ insert($nombre,$usuario,$email,$edad,$dbc); function insert($nombre, $usuario, $email, $edad, $dbc){ $stmt = $dbc->prepare("INSERT INTO usuario (nombre,usuario,email,edad) VALUES (:nombre, :usuario, :email, :edad)"); $stmt->bindParam(':nombre', $nombre); $stmt->bindParam(':usuario', $usuario); $stmt->bindParam(':email', $email); $stmt->bindParam(':edad', $edad); $stmt->execute(); //$count=$stmt->rowCount(); //echo $count. "Nuevos Registros fueron ingresados satisfactoriamente"; echo "Nuevos Registros fueron ingresados satisfactoriamente"; }
- Si hemos codificado de manera correcta todos estos archivos e integrado nuestros datos de acceso a MySQL en el archivo "config/conexion.php"; obtendremos en nuestro navegador el siguiente panorama:
Bueno con esto culminamos un artículo muy importante que nos muestra claramente con detalles como es que podemos realizar la conexión a una base de datos MySQL utilizando el API PDO de PHP e insertar de forma segura unos registros a travez de un formulario con validaciones, todo paso a paso para que sea entendible para los que recien estan comenzando!.
- Les dejo el Código entero de este script:
Déjenos su Comentário:
0 commentários: