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 :

[MySQL]Créer une requète en utilisant une variable


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut [MySQL]Créer une requète en utilisant une variable
    Bonjour, [je sais, google est mon ami], je trouve que le net est pas tres riche concernant les tuto complets sur mysql...
    Alors je vous demande, comment faire pour faire une requete mysql comme ceci, en utilisant une variable dans le champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(&mysql, "UPDATE recherche SET essai1='MAVARIABLE');
    je sais que ma requete ne marche pas, et j'aimerais donc modifier le champ esssai1 par la valeur de MAVARIABLE qui est une variable (char[]).


    merci d'avance, a+


  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    sprintf, A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    Lol merci mais tu pourrais me montrer ma requete avec sprintf car j'ai essayé ca et ca marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(&mysql, sprintf("UPDATE recherche SET essai1=%s", lien), lien);
    a+


  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Tu as mit un paramètre en trop. mysql_query ne prend que 2 paramètres il me semble.

    Construit ta chaine avant l'appel, avec sprintf. Par exemple une chaine "sqlQuery" crée comme tu l'as fait via sprintf. Ensuite, tu la passes en deuxième paramètre de mysql_query. Et tout devrait être bon

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char lien[]="http://www.google.fr", requete[100]={0};
    sprintf(requete, "UPDATE recherche SET essai1=%s", lien);
    mysql_query(&mysql, requete);

    mais ca n'update rien !
    ma connection est bonne ! je peux meme insérer des données
    EDIT : horrible, bon programme m'affiche veuillez entrer une touchne pour continuer et rien d'autre, meme pas mon printf("bonjour"); !!

    Voila le code au complet :
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock.h>
    #include <string.h>
    #include <C:\Dev-Cpp\include\mysql\mysql.h>
     
    int main(int argc, char *argv[])
    {
        printf("Bonjour");
      MYSQL mysql;
      mysql_init(&mysql);
      mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"avenos");
      mysql_real_connect(&mysql,"localhost","root","","mysql",0,NULL,0);
      char lien[]="http://www.google.fr", requete[100]={0};
      sprintf(requete, "UPDATE recherche SET essai1=%s", lien);
      printf("Requete : %s\n", requete);
      mysql_query(&mysql, requete);
      mysql_close(&mysql);
      system("PAUSE");	
      return 0;
    }
    je suis sous dev c++

    Aidez moi

  6. #6
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    j'ai pas regardé ton code en detail, mais voici un bout d'un de mes codes (que j'ai du recup quelque part sur le net)

    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
    MYSQL *
    do_mysql_connect (char *host_name, char *user_name, char *password,
    		  char *db_name, unsigned int port_num, char *socket_name,
    		  unsigned int flags)
    {
      MYSQL *conn;			/* pointer to connection handler */
     
      conn = mysql_init (NULL);	/* allocate, initialize connection handler */
      if (conn == NULL)
        {
          fprintf (stderr, "mysql_init() failed\n");
          return (NULL);
        }
      if (mysql_real_connect (conn, host_name, user_name, password,
    			  db_name, port_num, socket_name, flags) == NULL)
        {
          fprintf (stderr, "mysql_real_connect() failed:\nError %u (%s)\n",
    	       mysql_errno (conn), mysql_error (conn));
          return (NULL);
        }
      return (conn);		/* connection is established */
    }
     
    int
    main ()
    {
      char hostname[] = "my_host.com";
      char user_name[] = "my_uname";
      char password[] = "my_pass";
      char db_name[] = "my_db";
      unsigned int port = 64000;
      char query[1024];
      MYSQL *conn = NULL;
     
      conn = do_mysql_connect (hostname, user_name, password, db_name,
    			   port, NULL, 0);
      mysql_query (conn, "select id from userdb");
     
      snprintf (query, sizeof (query), "%s '%s'",
    			"UPDATE blahblah SET id = 2,lastcheck = now() WHERE ip =",
    			"127.0.0.1");
      mysql_query (conn, query);
      mysql_close (conn);
    }
    j'ai epuré mon code au maximum (viré les check etc), ça devrais encore marcher. et peut etre te permettre de trouver ce qui cloche dans ton code.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/05/2010, 14h12
  2. [AC-2003] Numéroter les doublons dans une requête en utilisant une fonction VBA
    Par maldan dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/09/2009, 16h46
  3. Réponses: 1
    Dernier message: 23/09/2009, 15h38
  4. Réponses: 11
    Dernier message: 23/09/2008, 13h16
  5. [RegEx] Utiliser une expression régulière dans une requête
    Par Tobleron dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2007, 19h00

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