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 :

Mysql LongBlob: recuperer les données


Sujet :

SGBD Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Mysql LongBlob: recuperer les données
    Bonjour!
    Le type LongBlob de Mysql permet de sauvegarder des fichiers de tres grandes tailles.
    J'aimerais pouvoir ecrire puis lire ce genrs de données via le module DBI.
    Soit la table t2(longblob data2) ( ): voila donc un premier jet pour récuperer ces fameux fichiers:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #script d'insertion:
     
    #!/usr/bin/perl -w
     
    use strict;
    use DBI;
     
    ########################## READ BINARY FILE #####################################
    my $image = "image.jpg";
    open(IMG, $image)  or die "can't open $image: $!";
    binmode(IMG);               # now DOS won't mangle binary input from GIF
     
    my $buff;
    my $content;
     
    while (read(IMG, $buff, 8 * 2**10)) {
        $content.=$buff;
    }
    close(IMG);
     
    ########################## SQL TRANSACTION #########################################
     
    my $source ="dbi:mysql:dbname=database02;host=localhost";
    my $user = "root";
    my $passwd = "";
    my $base =DBI->connect($source,$user,$passwd);
     
    my $sql = "INSERT INTO t2 (data2) VALUES (".$base->quote($content).")";
     
    my $req=$base->prepare($sql) or die($base->errstr());
    $req->execute() or die($base->errstr()); 
     
    #script de récuperation:
     
    #!/usr/bin/perl -w
    use DBI;
    use strict;
     
    my $source ="dbi:mysql:dbname=database02;host=localhost";
    my $user = "root";
    my $passwd = "";
    my $base =DBI->connect($source,$user,$passwd);
     
    my $sql = "select data2 from t2";
     
    my $req=$base->prepare($sql) or die($base->errstr());
    $req->execute() or die($base->errstr());
     
    my $i=0;
     
    while (my @t =$req->fetchrow_array())
      {
        open(TEST,">test$i");
        binmode(TEST);
        print TEST $t[0];
        close(TEST);
        $i++;	 
      }
    Ces scripts s'executent sans anicroches mais le fichier test récupéré à la fin ne fait (evidement?) que 64KB alors que l'image jpg en faisait 90.
    Je pense que c'est la récupération qui pose problème.
    Je suis novice en la matière alors si quelqu'un à une idée...

    Merci d'avance.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Sujet clos...pfff...
    Le monsieur qui a crée la base a dis "longblob" plutot que "blob".
    Merci la communication interservice.

    Le code écrit plus haut fonctionne evidement parfaitement.
    Désolé pour l'information parasite....

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

Discussions similaires

  1. [MySQL] recuperer les données mysql dans une balise< select>
    Par le maire dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/06/2014, 20h38
  2. recuperer les donnes proteger par administrateur
    Par sehing dans le forum Windows XP
    Réponses: 5
    Dernier message: 25/01/2006, 12h41
  3. Réponses: 3
    Dernier message: 28/12/2005, 15h29
  4. Recuperer les données d'un formulaire en PHP
    Par mekdar dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2005, 15h41
  5. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 17h21

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