PHP OO: PHP y PDO: Insertando Registros en una tabla de MySQL con PHP y PDO

Compartir:

FormInsertPHP: Insertando Valores en una Tabla 'usuario' de la base de datos 'conexionpdo' de forma segura

Download FormInsertPHP
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)
);


Segundo Paso: Conectandonos a nuestra Base de Datos llamada 'conexionpdo' usando PDO de PHP
  • 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 PasoConstruyendo 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 PasoAhora 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:
    Compartir:
    Localización Gov. Celso Ramos, SC, Brasil

    Aplicativo PHP

    PDO

    PHP

    PHP y MySQL

    Sentencias Preparadas

    Déjenos su Comentário:

    0 commentários: