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][MySQL] problème de connexion / insertion


Sujet :

SGBD Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [DBI][MySQL] problème de connexion / insertion
    Bonjour,

    Je commence tout juste le PERL, et je m'intéresse actuellement aux interactions possibles de ce langage avec une base de données grâce a DBI.
    J'ai le code suivant:

    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
    31
     
    #!/usr/bin/perl
     
    use DBI;
    use CGI;
     
    $co = new CGI;
    print $co->header;
     
    $database="test";
    $hostname="localhost";
    $login = "test";
    $mdp = "*******";
     
    $dsn = "DBI:mysql:database=$database;host=$hostname";
    $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
     
    %data = ("id" => "", "nom" => "test", "boite" => "test", "screen" => "test", "plateforme" => "test", "genre" => "test", "joueurs" => "1", "description" => "test", "année" => "test", "editeur" => "test", "developpeur" => "test");
     
    $query = "INSERT INTO test (id, nom, boite, screen, plateforme, genre, joueurs, description, année, editeur, developpeur) VALUES ('$data{id}','$data{nom}','$data{boite}','$data{screen}','$data{plateforme}','$data{genre}','$data{joueurs}','$data{description}','$data{année}','$data{editeur}','$data{developpeur}');";
     
    $sth = $dbh->do($query);
     
    $sth->execute();
     
    while(my @row = $sth->fetchrow_array){
    print $row['0']." <br>";
    }
     
     
    print "Le  jeu " . $sth->{'id'} . "a été inséré dans la base!\n";
    Oui il pourrait être simplifié, mais je m'amuse a essayer diverses choses étant débutant

    Le problème viens du fait que ce script m'affiche une page blanche, alors que le chmod est bien sur 755, et que DBI et DBD-MySQL sont bien installés.

    J'ai été voir les logs, et c'est ecrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonIP - - [09/Jun/2008:15:02:03 +0200] "GET /cgi-bin/sql.cgi HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"
    Si quelqu'un a une idée, merci d'avance

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Tu devrais utiliser les pragma strict et warnings, tu auras peut-être une idée plus précise du problème. Tu devrais également rajouter des 'my' afin de déclarer tes variables proprement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use strict;
    use warnings
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while(my @row = $sth->fetchrow_array){
    print $row['0']." <br>";
    }
    Tu ne dois pas mettre ton zéro entre quotes.
    -- Jasmine --

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Points : 272
    Points
    272
    Par défaut
    Bonjour,

    C'est cool si tu t'amuses.

    Mais pour plus de fun, relie la doc autour de la méthode do et de la méthode execute.
    do ne te renvoie pas un statement, mais le nombre de ligne affectée; et execute s'utilise sur un objet statement renvoyé par prepare.

    De plus, sur une requete SQL de type insert tu n'as rien à récupérer si ce n'est le nombre de ligne, ton fetchrow est donc totalement inutil.

    Have fun ^^
    Linux because rebooting is just for adding medias

Discussions similaires

  1. [POSTFIX][MYSQL] problème de connexion à mysql
    Par tsutone dans le forum Réseau
    Réponses: 1
    Dernier message: 04/04/2007, 16h50
  2. [C#][2.0][MySQL] Problème de connexion.
    Par just1980 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/02/2007, 14h17
  3. [MySQL] problème de connexion
    Par h'mida dans le forum JDBC
    Réponses: 8
    Dernier message: 20/10/2006, 11h06
  4. asp et mysql, problèmes de connexion
    Par boss_gama dans le forum ASP
    Réponses: 4
    Dernier message: 20/06/2006, 12h22
  5. [connexion Mysql] problème de connexion avec l'odbc
    Par DarkAngelus dans le forum Administration
    Réponses: 2
    Dernier message: 13/10/2005, 11h24

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