Está usted en Indice > Construcción > Lenguajes > Perl > Lecciones y Paso a Paso > Conectar a una Base de Datos con Perl
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Conectar a una Base de Datos con Perl (3)

Muy bien, veamos línea por línea, en la línea 1 iniciamos una variable con el valor de "perl", en la línea dos iniciamos dos variables que vamos a usar más adelante.

En la línea 3 asignamos a la variable $dbh todo el código necesario para conectarse al database a través de la función que hicimos en nuestro módulo.

En la línea 4 preparamos un query, en este caso lo hice como si estuviera ejecutando uno en MySQL, sabemos que estamos preparandolo porque llamamos la función "prepare()". Nota como dentro del query hay un signo de "?", este símbolo servirá como un contenedor, al cual le vamos a asignar un valor en la línea siguiente.

En la línea 5 ejecutamos ya el query que preparamos en la línea anterior, pero nota como enviamos nuestra variable $campo. Lo que va a hacer perl es tomar esa variable y ponerla en el contenedor "?" que pusimos anteriormente.

En la línea 6 terminamos el query y en la línea 7 terminamos la conexión al database.

Si quisieramos enviar más variables en nuestro query podríamos poner más contenedores "?", que serían sustituidos por las variables en el orden que las enviemos.

Recibir datos

Ya vimos como ejecutar un query, pero qué pasaría si quisieramos recibir datos, digamos que llamamos todas las celdas de nuestro database, o que pedimos un valor.

Si ejecutamos un query y sólo vamos a recibir un valor entonces podrías hacer algo así:

1: my($dbh,$sth);

2: $dbh = ConectarDB->connect();

3: $sth = $dbh->prepare('SELECT fecha FROM table WHERE nombre = ? AND apellido = ?') or die("Couldn't prepare statement: " . $dbh->errstr);
4: $sth->execute("Uriel","Lizama") or die("Couldn't execute statement: " . $sth->errstr);
5: my $fecha = $sth->fetchrow_array();
6: $sth->finish;

7: $dbh->disconnect;

En este código vemos como en la línea 3 puse 2 contenedores en mi query y por consiguiente en la línea 4 estoy enviando 2 variables, en el orden que quiero que se metan primer nombre y luego apellido.

La linea extra que pusimos en comparación a la de hace rato fue la línea 5 que inicializa la variable "$fecha" con el valor del campo que se regresa.

Si en otro caso quisieramos recibir dos valores podríamos hacer algo así:

1: my($dbh,$sth);

2: $dbh = ConectarDB->connect();

3: $sth = $dbh->prepare('SELECT fecha,id FROM table WHERE nombre = ? AND apellido = ?') or die("Couldn't prepare statement: " . $dbh->errstr);
4: $sth->execute("Uriel","Lizama") or die("Couldn't execute statement: " . $sth->errstr);
5: my ($fecha,$id) = $sth->fetchrow_array();
6: $sth->finish;

7: $dbh->disconnect;

Nota como en la línea 5 incluí otra variable sin problema, perl va a saber que el primer valor va para nuestra primera variable y el segundo para la segunda.



Usuarios que han visto este tema también han visto...

- Algunos trucos para programar en PERL
- Funcionesde Perl
- Qué es Perl
- Como Utilizar MySQL con Perl
- PostgreSQL con perl en el WEB


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 21-11-2008 a las 21:08:54