Sab Feb 17, 2007 1:38 pm
|
 |
Negrazo
Perlero Nuevo

|
Registrado: 28 Dic 2006
Mensajes: 42
|
|
| DBI: Uso de selectrow_hashref |
|
|
Hola a todos:
Estoy en pleno desarrollo de una aplicación en la cual estoy usando Perl con MySQL para manejar documentos dentro de MySQL y en un punto tengo que leer dichos documentos para buscar cierta información, me encontré por allí un ejemplo en donde utilizan:
| Perl: | my $imagen = $m-> selectrow_hashref("SELECT documento,tipo FROM DocsDetail WHERE llave = '$id' and documentname = '$nombre' ");
print (($ {$imagen}{'tipo'}) ? "Content-type: ${$imagen}{'tipo'}\n\n" : "Content-type: text/html\n\nImagen inexistente o Tipo de dato no soportado");
binmode(STDOUT);
print (($ {$imagen}{'tipo'}) ? $ {$imagen}{'documento'} : ''); |
Y la verdad que no le entiendo.
Yo había usado el fetchrow_array y más o menos lo conozco pero de este no tengo ni idea.
¿¿¿¿Alguien me puede decir qué es lo que hacen estas instrucciones????
Gracias por ayudar a alguien que esta aprendiendo y que con gusto ayuda a los demás.
Negrazo. |
|
|
|

Sab Feb 17, 2007 2:52 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
|
|
|
|
|
selectrow_hashref es la unión de los métodos "prepare", "execute" y "fetchrow_hashref".
Devuelve una referencia a un hash, donde este hash tiene como claves los nombres de los campos de la primera fila de la tabla de resultados devuelta por la consulta.
$imagen es una referencia a un hash.
${ $imagen } es la desreferencia, por lo que es un hash.
${ $imagen }{'tipo'} accede al valor de la clave 'tipo'.
http://search.cpan.org/perldoc/DBI |
|
Sab Feb 17, 2007 3:42 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
|
|
|
|
|
| explorer escribió: | | ${ $imagen }{'tipo'} accede al valor de la clave 'tipo'. |
Para mi gusto es mucho más legible hacer:
Saludos |
|
Lun Feb 19, 2007 11:32 am
|
 |
Negrazo
Perlero Nuevo

|
Registrado: 28 Dic 2006
Mensajes: 42
|
|
|
|
|
Muchas gracias a Kidd y Explorer:
Hoy he aprendido algo nuevo, gracias a ustedes.
Ahora si comprendo lo que vi y lo voy a poner en practica.
Gracias nuevamente.
Negrazo. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|