IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

DBI::db fetchrow_ introuvable


Sujet :

SGBD Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut DBI::db fetchrow_ introuvable
    Bonjour, je commence à développer un script en perl et lorsque je veux récupérer les résultats stockés dans MySQL par la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ( $hash_ref = $dbh->fetchrow_hashref ){
    		$last_in_bits = $hash_ref->{IN};
    		$last_out_bits = $hash_ref->{OUT};
    	}
    il me retourne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Can't locate object method "fetchrow_hashref" via package "DBI::db"
    Cependant le module DBI a bien été installé, c'est le dernier en date et je me demande donc si il y aurait une explication à tout celà... merci =)

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Il nous manque des éléments pour répondre. Cependant je dirait que $dbh n'est pas un objet "statement handle" (requête), ce qui signifie qu'il n'a pas la méthode fetchrow_hashref(). Tu devrais nous donner le début de ton script et en particulier la façon dont tu as construit $dbh pour que nous t'en disions plus.

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    voilà la partie complète en relation avec MySQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    my $dbh = DBI->connect(    "DBI:mysql:database=oreon_storage;host=localhost", 
                               "root", 
                               "",
                               {'RaiseError' => 1}
                           );
    my $sql_query = "INSERT INTO bits VALUES('','".abs($in_bits)."','".abs($out_bits)."');";
    my $sth = $dbh->do($sql_query);
    my $id = $dbh->{'mysql_insertid'};
    $id--;
    if (!defined($sth)){
    	print "MySQL Error";
    	exit($ERRORS{"UNKNOWN"});
    }
     
    #############################################
    #####          Get trafic Day - 1
    ##
     
    my $hash_ref;
    if ( defined($id) && $id > 0 ){
    	$sql_query = "SELECT * FROM bits WHERE `id` = '".$id."';";
    	$sth = $dbh->do($sql_query);
    	while ( $hash_ref = $dbh->fetchrow_hashref ){
    		$last_in_bits = $hash_ref->{IN};
    		$last_out_bits = $hash_ref->{OUT};
    	}
    }
     
    my $rc = $dbh->disconnect;

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu as écris $dbh alors que tu voulais écrire $sth.

    --
    Jedaï

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    Le problème c'est que lorsque j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $hash_ref = $sth->fetchrow_hashref
    j'ai en retour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Can't call method "fetchrow_hashref" without a package or object reference at

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    do() est une méthode qui permet d'exécuter une requête SQL et de retourner le nombre de lignes affectées, typiquement on l'utilise pour des insert, update... Mais jamais pour des select. Ce que tu veux faire c'est sans doute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ( defined($id) && $id > 0 ){
    	$sql_query = "SELECT * FROM bits WHERE `id` = ? ;";
    	$sth = $dbh->prepare($sql_query);
            $sth->execute( $id );
    	while ( my $hash_ref = $sth->fetchrow_hashref ){
    		$last_in_bits = $hash_ref->{IN};
    		$last_out_bits = $hash_ref->{OUT};
    	}
    }
    --
    Jedaï

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

Discussions similaires

  1. PERL et installation sous windows de DBI
    Par Kath dans le forum SGBD
    Réponses: 4
    Dernier message: 14/07/2006, 12h34
  2. Installation du module DBI pour perl sous W2K
    Par tomcat dans le forum Modules
    Réponses: 6
    Dernier message: 22/01/2004, 12h54
  3. pgMyAdmin introuvable
    Par ovh dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/06/2003, 10h11
  4. [warning][properties]problème de police introuvable
    Par cyrdec dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/04/2003, 18h41
  5. [] Datareport.orientation introuvable même avec sp5
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/01/2003, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo