Bonsoir,

j'essai de créer un programme en C me permettant de stocker des chaines de caractère en base de donnée.

Pour cela, je me suis basé sur le programme suivant qui fonctionne:

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
/* pour integrer l'API WinSock on a le choix entre #include<winsock> et #define __LCC__ 
dans le fichier mysql.h lignes 34(ça depend de la version) nous avons:
 
#ifdef __LCC__
#include <winsock.h> // For windows 
#endif
 
alors si on met #define __LCC__ cela engendre l'inclusion de winsock.h
*/
 
#define __LCC__
//#include <winsock.h>
 
#include <stdio.h>
#include "mysql.h" // guillemet pour dire que l'header est dans le répertoire courant du projet
#include <conio.h>
#include <time.h>
 
MYSQL *mysqlconnexion;
MYSQL_ROW myROW;
MYSQL_RES *myRES;
 
const char * hostname,*user,*password;
unsigned int port;
 
void sleep(int nbr_seconds);
 
int main()
{
//initialisation des parametres de connexion
hostname="localhost";
user="root";
password=""; // => pas de password pour l'utilisateur
port=3306;
//initialisation du gestionnaire de la connexion à la base de données mySQL
mysqlconnexion=mysql_init(NULL);
		if(!mysqlconnexion) 
		{
			printf("Echec de l'initialisation du gestionnaire de la connexion mysql\n");
			return -1;
		}  
		printf("Initialisation du gestionnaire de la connexion mysql avec succes\n");
 
       //tentative de connexion au serveur mySQL
 
		if (!mysql_real_connect(mysqlconnexion,hostname,user,password,NULL,port,NULL,0))
		{
                printf("Echec lors de la tentative de connexion au serveur mySQL\n");
				return -1;
        }
        printf("Connexion au serveur mySQL reussie\n");
 
       // execution d'un simple requête pour récuperer l'ensemble des bases de données
        mysql_query(mysqlconnexion,"show databases");
 
       //initialisation du jeu de résultats et l'enregistre dans le client		
		myRES = mysql_store_result(mysqlconnexion);
 
		if (myRES) 
		{
          //parcours de l'ensemble des lignes du resultat myRES 
		  for(unsigned int i = 0; i < myRES->row_count /*nombre de lignes dans la structure du resultat*/; i++) 
		  {
           myROW = mysql_fetch_row(myRES);
             for(unsigned int j = 0; j < mysql_num_fields(myRES)/*nombre de champs(colonnes) dans une ligne du resultat*/; j++)
			 {
                //affichage de la valeur du J ème champs de la ligne en cours du resultat. 
				 printf("%s   ", myROW[j]);
			 }
		   //retour à la ligne aprés affichage des valeurs de tous les champs de ligne en cours du resultat myRES
		   printf("\n");
		  }
          //Libèration de la mémoire allouée au résultat myRES
          mysql_free_result(myRES);
		}
       // fermeture de la connexion et libèration du pointeur de connexion mysqlconnexion
        mysql_close(mysqlconnexion);
        return 0;
}
Mais, peut-on me dire comment accéder à une table dans ma base de donnée? Puis un champ de la table? (lire ce champs par exemple).

J'ai consulté ce lien: http://dev.mysql.com/doc/refman/5.0/...-overview.html
qui détail pas mal des possibilité avec l'header mysql.h

Mais je ne trouve pas la syntaxe des fonctions mysql_querry(....).
En php, il suffit de faire INSERT .... .... mais là? Quelqu'un pourrait m'expliquer ou me donner une de ces syntaxes en C?

Merci beaucoup,
Florian