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: