Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > SGBD
SGBD Toutes vos questions sur l'interaction entre Perl et les bases de données (SQL, mysql, postgresql, ORACLE, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/03/2011, 15h29   #1
Franz_O
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 3
Points : 3
Par défaut Placeholder et select mysql

J'ai un petit problème que j'ai du mal à comprendre...

j'ai mis en place des placeholders sur des select mais je n'arrive pas à récupérer les données...

déclaration du placeholder:
Code :
1
2
3
4
5
6
7
8
9
my $requete_sql_select_recepteurs = <<"SQL";
SELECT count(R.id), R.id
from recepteurs R
left join recepteur_nom RN
on R.id=RN.id_rec
where RN.nom = ? AND R.organisme = ?;
SQL
 
my $select_recepteurs = $dbh->prepare($requete_sql_select_recepteurs);
utilisation du placeholder:
Code :
1
2
3
4
5
6
$select_recepteurs->execute( $tab_temp[$num_nom_recept] , $tab_temp[$num_orga] ) or die "Echec Requete $requete_sql_select_recepteurs : $DBI::errstr";
 
while(my $ref = $sql->fetchrow_hashref()){
	$parse_recepteurs=$ref->{'count(R.id)'};
	$id_recept_temp=$ref->{'R.id'};
}
erreur:
DBD::mysql::st fetchrow_hashref failed: fetch() without execute() at Insertion_bindingdb.pl line 425, <EN_COURS> line 2.

alors que si je remplace le placeholder par la requete :
Code :
1
2
$request="SELECT count(R.id), R.id from recepteurs R left join recepteur_nom RN on R.id=RN.id_rec where RN.nom = $tab_temp[$num_nom_recept] AND R.organisme = $tab_temp[$num_orga]";
	$sql = $dbh->prepare($request) ; $sql->execute() ;
l'éxécution se fait sans problème...

Merci d'avance
Franz_O est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 17h48   #2
Beniou
Membre expérimenté
 
Avatar de Beniou
 
Homme
Inscription : novembre 2009
Messages : 357
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : novembre 2009
Messages : 357
Points : 509
Points : 509
Dans ton code tu utilise la fonction "fetchrow_hashref" sur la variable $sql. Or, tu dois le faire sur la variable $select_recepteurs
Code :
1
2
3
4
5
 
while(my $ref = $select_recepteurs->fetchrow_hashref()){
	$parse_recepteurs=$ref->{'count(R.id)'};
	$id_recept_temp=$ref->{'R.id'};
}
Beniou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 14h10   #3
Franz_O
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 3
Points : 3
forcement si j'utilise pas la bonne variable...

je te remercie beaucoup
Franz_O est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h37.


 
 
 
 
Partenaires

Hébergement Web