selectall_arrayref plante
Bonjour tout le monde,
Je suis en train de faire un script PERL pour me connecter a une base MySQL.
Via une page CGI, je fais une interface de recherche sur cette base.
cependant, quand j'entre dans la page CGi des criteres qui ne doivent donner aucun resultat, le script plante.
J'ai reussi a localiser l'endroit ou ca plante :
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| sub search_db {
my($has_skeys) = @_;
# ----- the returned array
my($arr_articles,$sca_article_ind);
$sca_article_ind = 0;
# ----- connect
my ($db,$host,$id,$pw,$dsn,$dbh) = connect_db();
foreach my $parameter (keys %$has_skeys) {
my $request = qq{SELECT * FROM tab_news WHERE $parameter = $$has_skeys{$parameter}};
my $sth_select = $dbh->prepare($request);
# ----- ca vient de planter a la ligne superieure
my $arr_select = $dbh->selectall_arrayref($sth_select);
print "yo\n<BR>$arr_select";
# ----- read the datas
foreach my $arr_record (@$arr_select) {
my $arr_artdatas;
foreach my $argument (@$arr_record) {
print " et $argument,\n";
push @$arr_artdatas, $argument;
}
# ----- store inside array full of hashes
$$arr_articles[$sca_article_ind] = {
database_reference => $$arr_artdatas[0],
absolute_reference => $$arr_artdatas[1],
data_entry_date => $$arr_artdatas[2],
article_date => $$arr_artdatas[3],
article_title => $$arr_artdatas[4],
article_url => $$arr_artdatas[5],
article_content => $$arr_artdatas[6],
categories1 => $$arr_artdatas[7],
categories2 => $$arr_artdatas[8]
};
$sca_article_ind ++;
}
}
return($arr_articles);
} |
Voila,
Pour contourner cette erreur, j'ai deja essaye de mettre un test avec
Code:
defined $dbh->prepare($request)
Mais ca plante toujours autant.
Avez vous des idees ?
Ciao, merci et bon courage ! :wink: