Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    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

  2. #2
    Membre expérimenté Avatar de Beniou
    Homme Profil pro
    Inscrit en
    novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : novembre 2009
    Messages : 357
    Points : 513
    Points
    513

    Par défaut

    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'};
    }

  3. #3
    Invité de passage
    Inscrit en
    février 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 7
    Points : 3
    Points
    3

    Par défaut

    forcement si j'utilise pas la bonne variable...

    je te remercie beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •