Forum Programmation.perl urgence

Posté par  .
Étiquettes : aucune
0
11
oct.
2005
je suis devant mon serveur mysql depuis 4 jours
alors ,il y'a quelqu'un qui veux m'aider merci
  • # Super !

    Posté par  . Évalué à 7.

    Mais encore ?
    • [^] # Re: Super !

      Posté par  . Évalué à -6.

      merci, mais je cherche juste la reponse a mon script
      • [^] # Re: Super !

        Posté par  . Évalué à 1.

        bonjour a tous;
        j'essaye d'interroger ma base de donnée mysql via perl;
        malheuresement , mes script bugs;
        mon script est:



        #!/usr/bin/perl
        use DBI();

        $dbh= DBI->connect( "DBI:mysql:mydatabase=nabil;host=192.168.1.10",
        "",
        "",

        {'RaiseError' => 1});
        my %data= ();

        %data=("num_titi" => "12345a","ref_titi" => "89Fd6",
        );

        $query ="INSERT INTO titi_nab(num_titi,ref_titi) values('$data{"num_titi"}','$d
        ata{"ref_titi"}');";
        $sth (...)
        • [^] # Re: Super !

          Posté par  . Évalué à 5.

          malheuresement , mes script bugs;


          Décidément, il faut te tirer les vers du nez, toi. Le message d'erreur ?

          Bon je ne suis pas un pro du Perl, mais visiblement tu utilises des guillemets : $data{"num_titi"} ...

          ... au milieu d'une chaine qui les utilise déjà:

          $query ="INSERT ...

          Moralité, le Perl pense que $data est un scalaire ordinaire, que « { » est un caractère à afficher, et que le guillemet ouvrant qui suit est en fait le guillemet qui referme la chaine. => Erreur de syntaxe.
          • [^] # Re: Super !

            Posté par  . Évalué à 5.

            2 petites suggestions:

            1/ Il manque le login et le pass à ton connect(), tu l'as peut etre juste supprimé pour coller ton code

            2/ Utiliser des placeholders ("?") plutot que de mettre directement les variables dans les queries, ne fut-ce que pour un minimum de securité et de clareté (perldoc DBI pour plus d'informations):


            my $sql = qq { INSERT INTO foo (toto, tata) VALUES (?, ?) };
            my $sth = $dbh->prepare($sql);
            $sth->execute($data{'toto'}, $data{'tata'});



            .
  • # pas dur

    Posté par  (site web personnel) . Évalué à 8.

    je suis devant mon serveur mysql depuis 4 jours
    alors ,il y'a quelqu'un qui veux m'aider merci


    T'es collé à ton siège ? T'as une bombe sous ton siège ? (un peu façon L'arme Fatale 2.... tu vois quoi). MySQL t'obsède tant, tu te lève plus pour aller manger des pizzas ? Explique nous ?

    #mysql -u root -h localhost

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.