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

C++ Discussion :

Problème Mysql C++


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut Problème Mysql C++
    Bonjour,

    Je suis en train de revoir MySQL et C++ et je ne comprends pas ce qui ne va pas dans ce qui suit :
    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
     
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <winsock.h>
    #include <mysql/mysql.h>
     
    int main()
    {
        MYSQL mysql;;
        //MYSQL *connect;
        mysql_init(&mysql);
        //mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg);
        mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
        //mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag);
        printf("Tentative de connexion à la BDD!");
        if(mysql_real_connect(&mysql,"localhost","root","","test",0,NULL,0))
        {
            printf("connexion à la BDD!");
            if(!mysql_query(&mysql, "INSERT INTO test.test_table(`Id` ,`Nom` ,`Prenom`,`Adresse`,`Date_naissance`) VALUES('3', 'Test_nom','Test_prenom','Test_ville', '1000-10-10'')"))
                printf("Probleme !!!");
            else
                printf("OK add");
            mysql_close(&mysql);
        }
        else
        {
            printf("Une erreur s'est produite lors de la connexion à la BDD!");
        }
     
        return 0;
     
    }
    Ceci m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Tentative de connexion à la BDD!connexion à la BDD!OK add
    Processus returned -1073741819(0xC0000005) execution time 1.563s
    Donc normalement tout devrait bien s'être passé.

    Hors ma table n'a pas bougé, l'insertion ne s'est pas faite alors que le programme me dit que tout s'est bien passé.

    Merci d'avance.

    NB : j'utilise EasyPHP pour voir l'état de mes tables.

  2. #2
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    mysql_query renvoie 0 parce que la requête a bien été exécutée, mais en l'occurrence, celle-ci n'est pas valide.

    En gros, il faut faire la différence entre requête invalide --> mysql_query renvoie 0, et impossibilité de transmettre la requête au SGBD (connexion coupée, par exemple), là mysql_query renvoie ≠ 0.

    Pour tester que ta requête s'est bien exécutée :

    int err = mysql_errno(&mysql);

    Ici, un peu d'attention suffit : il y a un ' de trop à la fin de ta requête .

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut
    Cela fonctionne.
    J'ai pourtant regardé plusieurs fois, mais je ne voyais pas le double '.

    Mais je pensais que si mysql_query retournait true cela signifiait que tout s'était bien passé.
    Maintenant je sais.

    Merci pour ton aide.

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

Discussions similaires

  1. [VB6] Problème mysql avec type données BLOB
    Par KrusK dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/06/2006, 11h13
  2. Problème Mysql 5
    Par nico33410 dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/06/2006, 18h58
  3. problème mysql-client
    Par baali_hacene dans le forum Installation
    Réponses: 2
    Dernier message: 18/05/2006, 15h44
  4. Réponses: 8
    Dernier message: 17/03/2006, 09h02
  5. Problème MySQL 4.1 et PHPMyADMIN
    Par Acti dans le forum Installation
    Réponses: 5
    Dernier message: 29/10/2004, 02h19

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