Besoin de précision pour module DBD::mysql
Bonjour,
j'utilise actuellement ce module pour communiquer avec ma base.
Mes sources d'info sont la doc présente sur la CPAN.
Mon objectif est simplement d'initializer une variables à l'aide de la valeur d'un attribut que j'extrais. Le problème ce que pour cette seul action, je me retrouve avec un bon paquet de ligne. J'ai essayé deux solutions (une qui marche l'autre pas)
Le code fonctionnel est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#!/usr/bin/env perl
use DBI;
my $b_RecupOccu = <<"SQL";
select occurrence
from Mr_occurrence
where mr = ?
and url = ?
SQL
# fonctionne
my $RecupOccu = $dbh->prepare($b_RecupOccu);
$RecupOccu->execute ($mr, $url)
or die "blabla\n";
# ce qui m'oblige à faire cela, et donc de passer par une var intermédiaire
my $ref = $RecupOccu->fetchrow_hashref();
my $occurrence = $ref->{'occurrence'};
$RecupOccu->finish(); |
le non fonctionnel étant le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#!/usr/bin/env perl
use DBI;
my $b_RecupOccu = <<"SQL";
select occurrence
from Mr_occurrence
where mr = ?
and url = ?
SQL
# indication pour recuperer directement le resultat ... n'a aucun effet
my $RecupOccu = $dbh->prepare($b_RecupOccu, {"mysql_use_result" => 1});
$RecupOccu->execute ($mr, $url)
or die "blabla\n";
# grâce au changement de la valeur pour mysql_use_result, j'aurais du pouvoir extraire la valeur ainsi,
my $occurrence = $RecupOccu->{'occurrence'};
# au lieu de ça j'écope d'un undef..
$RecupOccu->finish(); |
Ce code passe à l'interprétation, mais m'indique que $occurrence est à "unitialized", si je l'affiche par exemple.
J'ai trouvé ces infos dans la section Statement handles de la doc CPAN
http://search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm
Si quelqu'un pouvait donc m'éclairer. Merci