Developpez.com - Rubrique MySQL

Le Club des Développeurs et IT Pro

Sun Microsystems annonce MySQL 5.4

Le 2004-01-29 09:31:10, par toflofr, Membre du Club
Bonjour je dois faire un projet (sous mandrake) ou je doit piloter, enfin ecrire et lire dans une base de donnée en sql, et je dois realiser un programme en C, je compile l'exemple suivant:

Code :
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
#include <mysql/mysql.h>
#include <stdlib.h>

static char *server_args&#91;&#93; = &#123;
  "this_program",       /* this string is not used */
  "--datadir=.",
  "--key_buffer_size=32M"
&#125;;
static char *server_groups&#91;&#93; = &#123;
  "embedded",
  "server",
  "this_program_SERVER",
  &#40;char *&#41;NULL
&#125;;

int main&#40;void&#41; &#123;
  mysql_server_init&#40;sizeof&#40;server_args&#41; / sizeof&#40;char *&#41;,
                    server_args, server_groups&#41;;

  /* Use any MySQL API functions here */

  mysql_server_end&#40;&#41;;

  return EXIT_SUCCESS;
&#125;
et il me retourne l'erreur suivante:

Code :
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
#include <mysql/mysql.h>
#include <stdlib.h>

static char *server_args&#91;&#93; = &#123;
  "this_program",       /* this string is not used */
  "--datadir=.",
  "--key_buffer_size=32M"
&#125;;
static char *server_groups&#91;&#93; = &#123;
  "embedded",
  "server",
  "this_program_SERVER",
  &#40;char *&#41;NULL
&#125;;

int main&#40;void&#41; &#123;
  mysql_server_init&#40;sizeof&#40;server_args&#41; / sizeof&#40;char *&#41;,
                    server_args, server_groups&#41;;

  /* Use any MySQL API functions here */

  mysql_server_end&#40;&#41;;

  return EXIT_SUCCESS;
&#125;
Si vous avez deja eut se probleme,ou que vous connaissé sa, s'il vous plait aider moi.
  Discussion forum
7 commentaires
  • GLDavid
    Expert confirmé
    Heu, je crois que tes 2 codes sont égaux
    Bon, mis à part ça, je te file l'un de mes codes lorsque je me suis initié à l'API MySQL :
    Code :
    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
    include <my_global.h>
    #include <mysql.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    MYSQL *conn;
    
    int main&#40;int argc, char**args&#41; &#123;
    MYSQL *con;
    MYSQL_RES *res;
    MYSQL_ROW row;
    unsigned int nb;
    unsigned long *lengths;
    unsigned int i;
    
    conn = mysql_init&#40;NULL&#41;;
    if &#40;conn==NULL&#41; &#123;
    	printf &#40;"\aErreur d'initiation du client !\n"&#41;;
    	exit&#40;EXIT_FAILURE&#41;;
    &#125;
    con = mysql_real_connect&#40;conn, NULL, "pikachu", "pokemon", "Pokemon", 3306, NULL,
    0&#41;;
    if &#40;con==NULL&#41; &#123;
    	printf &#40;"\aErreur de connection du client !\n"&#41;;
    	exit&#40;EXIT_FAILURE&#41;;
    &#125;
    else 
    	printf &#40;"Connection établi !\nWelcome !\n"&#41;;
    if&#40;mysql_query&#40;conn, "select Login from User"&#41;==0&#41; &#123;
    	res = mysql_use_result&#40;conn&#41;;
    	if &#40;res == NULL&#41;
    		printf &#40;"\aPas de réponse !\n"&#41;;
    	else &#123;
    		nb = mysql_num_fields&#40;res&#41;;
    		while &#40;&#40;row = mysql_fetch_row&#40;res&#41;&#41;&#41;
    		&#123;
       			lengths = mysql_fetch_lengths&#40;res&#41;;
       			for&#40;i = 0; i < nb; i++&#41;
       			&#123;
           				printf&#40;"&#91;%.*s&#93; ", &#40;int&#41; lengths&#91;i&#93;, row&#91;i&#93; ? row&#91;i&#93; &#58; "NULL"&#41;;
       			&#125;
       			printf&#40;"\n"&#41;;
    		&#125;
    	&#125;
    	mysql_free_result&#40;res&#41;;
    &#125;
    else
    	printf &#40;"\aProblème d'interrogation !\n"&#41;;
    mysql_close&#40;conn&#41;;
    printf&#40;"Fermeture du client. Bye !\n"&#41;;
    return 0;
    &#125;
    Ainsi que son makefile associé :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    all &#58; client
    
    MYI = -I/usr/include/mysql
    MYLIBS = -L/usr/include/mysql/ -lmysqlclient
    
    client &#58; mysqlclient.c
    	$&#40;CC&#41; -o client mysqlclient.c $&#40;MYI&#41; $&#40;MYLIBS&#41;
    
    clean&#58;
    	-rm -f *.o
    En espérant t'avoir aidé,

    @ ++
  • toflofr
    Membre du Club
    merci beaucoup ca marche impecable.
  • GLDavid
    Expert confirmé
    De nada amigo
  • Djaiii
    Membre à l'essai
    Salut David,
    Je veux également utiliser l'api MySQL pour controler mes bases avec du C ^^,
    Je viens de voir ton programme, peut tu me le détaillé ?
    De plus je n'ai pas la librarie pour ceci :
    #include <my_global.h>
    #include <mysql.h>

    Ou est ce que je peux me la procurer?
    Merci !!!

    Ps : J'utilise Ubuntu
  • Djaiii
    Membre à l'essai
    C'est bon j'ai trouvé la library. Par contre, j'ai voulu essayer votre programme, j'ai copier le .c, et le makefile, pour compiler, j'ai fait un make all, mais ca ne marche pas, comment faire ?

    Merci
  • Djaiii
    Membre à l'essai
    Cela me marque ceci quand je fait make ALL :
    make: *** Pas de règle pour fabriquer la cible « mysqlclient.c », nécessaire pour « client ». Arrêt.
  • Djaiii
    Membre à l'essai
    C'est bon la compilation marche, un simple make suffit... J'avais meme pas vu le Makefile...
    Bon je me penche sur votre prog, si vous passez par la et me donnez quelque détails dessus, ca serait sympas ^^.Merci !!.