UNIDAD 7: INTRODUCION A LAS BASES DE DATOS
TEMA PERL 11: OPERACIONES CON CAMPOS
Este es tambien un caso comun con elementos de una tabla, sin embargo es tambien facil de resolver.
Es necesario recordar primero algunas cosas elementales:
1.- La operacion que se plantee se puede realizar con todos los renglones de la tabla o con un solo renglon de la tabla para procesar todos los renglones se usara un ciclo while(como en el ejemplo), si solo se quiere procesar un solo renglon o una celda o columna no se usar el while.
2.- En el ejemplo se realiza la operacion con todos los renglones de la tabla y no olvidar que se tiene que usar la instruccion sql Update para que la nueva informacion se actualize en disco.
3.- Es por esta razon que se usaran dos enlaces o conecciones($dbh1 y $dbh2 ) y dos prepare() ($sth1 y $sth2) para poder mandar las instrucciones select y update.
Prog44.pl
#! /usr/bin/perl -w
# usando modulo o libreria CGI
use CGI;
use DBI;
# creando el OBJETO de tipo CGI
$q = new CGI;
# mandando servidor los encabezados de la pagina html
print $q→header;
print $q→start_html();
# creando una form o ventana
print $q→startform();
# creando un submit button
print $q→submit('ARITMETICA');
# cerrando la forma
print $q→endform();
#cerrando html
print $q→end_html;
if ( $q→param('ARITMETICA')) {
# creando DOS enlaces o conecciones dbh⇒database handle
my $dbh1 = DBI→connect('DBI:mysql:mibase:localhost','USUARIO','PASSWORD')|| die “ERROR CONECCION : $DBI::errstr”;
my $dbh2 = DBI→connect('DBI:mysql:mibase:localhost','USUARIO','PASSWORD')|| die “ERROR CONECCION : $DBI::errstr”;
# preparando el query sql OBSERVAR QUE TAMBIEN SE MANEJAN DOS STH
my $sth1 = $dbh1→prepare('SELECT * FROM mitabla');
$sth1→execute;
# ciclo de lectura de todos los renglones de la tabla
while ( my ($clave, $nombre, $edad, $estatura) = $sth1→fetchrow_array() ) {
# aumentando y usando UPDATE SQL pero a la caceccion DOS
$estatura = $estatura + 100.0;
# ESTE PROGRAMA ACTUALIZARLO USTEDES Y SOLO USAR UPDATE MI TABLA SET ESTATURA = ESTATURA +100 PARA EVITAR ENTRAR MIL VECES A LA BASE DE DATOS $sth2 = $dbh2→prepare(” UPDATE mitabla SET estatura = ? WHERE clave = ? ”);
$sth2→execute( $estatura, $clave );
};
# cerrando instrucciones y conecciones
$sth1→finish;
$sth2→finish;
$dbh1→disconnect();
$dbh2→disconnect();
print “edades aumentadas”;
};
</code>
corrida
TAREAS PROGRAMACION PERL MYSQL :
1.- construir una tabla que traiga matricula, nombre, calif1, calif2, calif3 y promedio, cargar en mysql directamente unos 5 renglones de alumnos, no cargar promedio, el promedio lo deberan calcular con un programa.