#!/usr/bin/perl
use strict;
use DBI;
use Term::ReadKey;
my $usuario;
my $pass;
my $conexion;
my $consulta;
my $marca;
my $modelo;
my $matricula;
my $color;
my $id;
my $entrada;
my $sth;
my $consulta;
my $datosentrada;
#########
# $conexion === variable que utilizamos para establecer la conexion con bd.
# $consulta === variable que utilizamos para guardar la consulta SQL.
# $sth === objeto a modulo dbi
print "introduzca su usuario: ";
chomp($usuario=<STDIN>);
print "introduzca su contraseña: ";
ReadMode(4); # lo uso para que no se muestre la contraseña por pantalla.
chomp($pass=<STDIN>);
ReadMode(0); # vuelvo a poner el modo normal para que se vea por pantalla lo que se escribe.
#iniciamos conexion con bd
$conexion=DBI->connect("DBI:mysql:host=localhost;database=concesionario",$usuario,$pass,{RaiseError => 1, PrintError => 0});
do {
print "\n";
print "CONSULTAR tabla pulse 1 \n";
print "INSERTAR datos pulse 2 \n";
print "MODIFICAR datos pulse 3\n";
print "BORRAR datos pulse 4\n";
print "SALIR pulse 0\n";
$entrada=<STDIN>;
if ($entrada==1){
#CREANDO CONSULTA
$consulta= qq {SELECT * FROM concesionario.coches};
#PREPARANDO CONSULTA
if ($entrada==1){
$sth=$conexion->prepare($consulta);
$sth->execute(); #EJECUTAMOS CONSULTA
#ASIGNAMOS VALORES DE LA CONSULTA A VARIABLES Y RECORREMOS LOS RESULTADOS
while(($marca, $modelo, $matricula, $color, $id)=$sth->fetchrow_array())
{
print "$marca, $modelo, $matricula, $color, $id \n";
}
}
}
#INSERTAMOS UNA NUEVA LINEA
if ($entrada==2){
print "introduce marca modelo matricula y color (Ejemplo OPEL CORSA 1234ZXC ROJO)\n";
$datosentrada=<STDIN>;
($marca,$modelo,$matricula,$color)=($datosentrada=~/([a-zA-Z]+)\s?([a-zA-Z]+)\s?(\d+[A-Z]*)\s([a-zA-Z]+)/);
$consulta = qq {INSERT INTO concesionario.coches (marca, modelo, matricula, color, id) VALUES('$marca', '$modelo', '$matricula', '$color', '0');
};
$sth=$conexion->prepare($consulta);
$sth->execute();
}
##ACTUALIZAMOS UNA LINEA
if ($entrada==3){
print "introduce la linea entera que quieres cambiar (marca modelo matricula color) \n";
$datosentrada=<STDIN>;
print "introduce la nueva linea:\n";
my $datosentrada2=<STDIN>;
($marca,$modelo,$matricula,$color)=($datosentrada=~/([a-zA-Z]+)\s?([a-zA-Z]+)\s?(\d+[A-Z]*)\s([a-zA-Z]+)/);
my($marca2,$modelo2,$matricula2,$color2)=($datosentrada2=~/([a-zA-Z]+)\s?([a-zA-Z]+)\s?(\d+[A-Z]*)\s([a-zA-Z]+)/);
$consulta = qq{UPDATE concesionario.coches SET marca='$marca2', modelo='$modelo2', matricula='$matricula2', color='$color2' WHERE marca='$marca' AND modelo='$modelo' AND matricula='$matricula' AND color='$color'};
$sth=$conexion->prepare($consulta);
$sth->execute();
}
##BORRAR LINEA SEGUN MATRICULA
if ($entrada==4){
print "Introduce la matricula del coche que quieres borrar: \n";
$matricula=<STDIN>;
print $matricula;
$consulta=qq{DELETE FROM concesionario.coches WHERE matricula='$matricula';};
$sth=$conexion->prepare($consulta);
$sth->execute();
}
if ($entrada==0){ $conexion->disconnect();}
}while ($entrada!=0);