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

Requêtes MySQL Discussion :

Insertion d'une image png dans une base de données


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 19
    Points
    19
    Par défaut Insertion d'une image png dans une base de données
    Bonjour,
    Je suis entrain de développer une application gtk+c et je bloque au moment ou je veux insérer une image png dans une BDD mysql, j'ai essayé les sockets(send & recv) mais je ne programme que la partie cliente (la partie serveur est gérée par le serveur mysql), j'ai essayé aussi de lire l'image comme étant un fichier binaire
    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
     
    MYSQL mysql;
    mysql_init(&mysql);
    mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
     
    FILE *f = NULL;
    char *buffer = malloc(11 * sizeof(char));
    char *buffer2 = malloc(65536 * sizeof(char));
    char *buffer3 = malloc(66536 * sizeof(char));
    if(f = fopen("C:\\image.png","rb"))
    	{
    	while(feof(f)==0)
    		{
    		fread(buffer, 1, 10, f);
    		strcat(buffer2, buffer);
    		}
    	fclose(f);
    	}
    else printf("Erreur lors de l'ouverture du fichier");
     
    sprintf(buffer3, "Insert into agent(Photo) values(%x)", buffer2);
    if(mysql_real_connect(&mysql,"localhost","root","pmp","pmp",0,NULL,0))
    {
    mysql_query(&mysql, buffer3);
    }
    free(buffer);
    free(buffer2);
    free(buffer3);
    Photo étant de type blob, mais ça aussi n'a pas marché.
    Est ce que quelqu'un peut m'aider svp?

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Le problème vient plus du langage C que de MySQL, à mon avis, et notamment dans la lecture du fichier et son passage à l'insertion... Mais je ne maîtrise pas trop la partie langage C...
    Sinon, une solution consiste à mettre l'image sur le serveur et à le charger via la fonction LOAD_FILE('chemin_vers_fichier/nom_fichier.png').

    Plus d'infos sur cette fonction dans la documentation MySQL.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 19
    Points
    19
    Par défaut
    Merci pour votre réponse
    J'ai lu la documentation sur la fonction Load_File et elle dit que l'image doit être présente sur le serveur avant d'utiliser la fonction or mon image ne se trouve pas forcément sur le serveur alors il faut utiliser un socket pour la transférer vers le serveur mais malheureusement j'ai pas réussi ça.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Là, j'ai peur que le problème ne se situe pas côté MySQL.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Stocker une image en base de données n'est peut-être pas une bonne idée. Ca prend de la place, ce n'est pas indexable ni même cherchable donc ça ralentit les requêtes.
    Il vaut mieux stocker le chemin d'accès à l'image et laisser l'image en tant que fichier indépendant.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Insérer une image envoyée dans ma base de données
    Par scary02 dans le forum Langage
    Réponses: 11
    Dernier message: 12/07/2013, 11h41
  2. Afficher une image stockée dans la Base de données
    Par SaladinDev dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 08/02/2012, 18h15
  3. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  4. Réponses: 4
    Dernier message: 19/06/2008, 15h41
  5. position dans une image (selection dans une image)
    Par kaiseresis dans le forum Images
    Réponses: 3
    Dernier message: 31/05/2008, 13h30

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