En esta entrada voy a explicar como se inserta un registro en una tabla de una base de datos Mysql con o
procedimiento PDO
Preparamos en primero lugar el formulario onde vamos registrando los datos que queremos insertar
Como bien sabemos el formulario tiene que hacer un envio por POST y la accion la dejamos en blanco
para
que se redirecione a la propria pagina.
1-Declaramos la condicional de envío
Cuando hacemos clic en el button enviar o guardar o insertar dependiendo de como se le
llame,
hacemos un envio tipo POST
Como la accion esta en blanco el envio sera hecho a la propria pagina, asi que ya dentro del codigo
php
vamos a verificar esa condicion
if(isset($_POST['insertar'])){
....
}
2-Condiciones de datos
En esta seccion podemos ver varias condiciones, como por ejemplo que:
- Los datos no vayam vacios
- Los datos (Email, telefono etc) no sean repetidos
NOTA para verificar si el telefono o email existe en la base de datos hay que hacer otra consulta dentro
de la
condicion
if (empty($_POST['txtNombre']) || empty($_POST['txtEmail'])) { ?>
<script>
alert('Tiene que rellenar todos los campos');
</script>
<?php }
Las variables enviadas
Si hasta este punto esta todo bien, las validaciones correctas, y hubo envio POST procedemos a recopilar
los
datos enviados del formulario en variables
$name = $_POST['txtNombre'];
$email = $_POST['txtEmail'];
$edad = $_POST['txtEdad'];
$pais = $_POST['txtPais'];
$fecha = $_POST['txtFecha'];
print_r($_POST);
Crear una consulta INSERT
Llego el momento de crear la consulta para insertar el registro
$sql = ("INSERT INTO tbl_personal (idPersonal, nombres, email, edad, pais, fecha_registro)
VALUES (NULL, :nombres, :email, :edad, :pais, :fecha);");
$stmt = $pdo->prepare($sql);
$stmt->bindParam('nombres', $name);
$stmt->bindParam('email', $email);
$stmt->bindParam('edad', $edad);
$stmt->bindParam('pais', $pais);
$stmt->bindParam('fecha', $fecha);
$stmt->execute();
1º-Preparar la consulta
$sql = ("INSERT INTO tbl_personal (idPersonal, nombres, email, edad, pais, fecha_registro)
VALUES (NULL, :nombres, :email, :edad, :pais, :fecha);");
$stmt = $pdo->prepare($sql);
2º-Enlazamos los parametros (bindParam) con las variables
$stmt->bindParam('nombres', $name);
$stmt->bindParam('email', $email);
$stmt->bindParam('edad', $edad);
$stmt->bindParam('pais', $pais);
$stmt->bindParam('fecha', $fecha);
Ejecutamos la consulta:
Comprovacion de la isercion
Llegados a este punto nos resta saber si la insercion fue excitosa o no
Si lo fue nos redimensionara a la lista del personal y si no nos enviara un alert alertandonos de lo
ocorrido
if ($lastInsertId > 0) {
header('location:lista_personal.php');
} else {
echo " No se pueden agregar datos, comuníquese con el administrador
";
print_r($stmt->errorInfo());
}
Codigo del ejemplo completo
<?php
include_once('conexion.php');
$alert = '';
if (isset($_POST['insertar'])) {
//print_r($_POST);
// exit;
//Verificacion si el input va vacio
if (empty($_POST['txtNombre']) || empty($_POST['txtEmail'])) { ?>
<script>
alert('Tiene que rellenar todos los campos');
</script>
<?php } else {
$name = $_POST['txtNombre'];
$email = $_POST['txtEmail'];
$edad = $_POST['txtEdad'];
$pais = $_POST['txtPais'];
$fecha = $_POST['txtFecha'];
print_r($_POST);
$sql = ("INSERT INTO tbl_personal (idPersonal, nombres, email, edad, pais, fecha_registro)
VALUES (NULL, :nombres, :email, :edad, :pais, :fecha);");
$stmt = $pdo->prepare($sql);
$stmt->bindParam('nombres', $name);
$stmt->bindParam('email', $email);
$stmt->bindParam('edad', $edad);
$stmt->bindParam('pais', $pais);
$stmt->bindParam('fecha', $fecha);
$stmt->execute();
$lastInsertId = $pdo->lastInsertId();
if ($lastInsertId > 0) {
header('location:lista_personal.php');
} else {
echo "<div class='content alert alert-danger'> No se pueden agregar datos, comuníquese con el administrador </div>";
print_r($stmt->errorInfo());
}
}
}
?>
<!doctype html>
<html lang="en">
<head>
<title>Title</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS v5.2.1 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
</head>
<body>
<header>
<nav class="navbar navbar-expand navbar-light bg-light">
<ul class="nav navbar-nav">
<li class="nav-item">
<a class="nav-link" href="insertar_personal.php">Insertar</a>
</li>
<li class="nav-item">
<a class="nav-link" href="lista_personal.php">Lista Personal</a>
</li>
</ul>
</nav><br>
</header>
<main>
<div class="container border border-danger border-2 p-3">
<h1 class="text-center " style="font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;">
Insertar datos del personal</h1><br>
<form action="" method="post" class="row g-2 bg-warning p-3">
<label for="">nombres</label>
<input class="form-control" type="text" name="txtNombre" id="">
<label for="">email</label>
<input class="form-control" type="email" name="txtEmail" id="">
<label for="">edad</label>
<input class="form-control" type="text" name="txtEdad" id="">
<label for="">pais</label>
<input class="form-control" type="text" name="txtPais" id="">
<label for="">fecha</label>
<input class="form-control" type="date" name="txtFecha" id="">
<button name="insertar" type="submit" class="btn btn-success btn-block">Guardar</button>
</form>
</div><br>
</main>
<footer>
<!-- place footer here -->
</footer>
<!-- Bootstrap JavaScript Libraries -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"
integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.min.js"
integrity="sha384-7VPbUDkoPSGFnVtYi0QogXtr74QeVeeIs99Qfg5YCF+TidwNdjvaKZX19NZ/e6oz" crossorigin="anonymous">
</script>
</body>
</html>
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias