Requete mysql en c (gcc)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 925 fois - Téléchargée 30 fois

Contenu du snippet

Cette source vous permetra de vous connecter à une base de donnée MySQL en C sous Linux.

Compilation: gcc mysql.c -o mysql -lmysqlclient

Source / Exemple :


#include <stdio.h>
#include <mysql/mysql.h>

#define MYSQL_HOST "localhost"
#define MYSQL_DB "db"
#define MYSQL_LOGIN "login"
#define MYSQL_PASSWD "pass"

int main() {
        MYSQL mysql;
        MYSQL_RES *result;
        MYSQL_ROW row;

        mysql_init(&mysql);
        if (!mysql_connect(&mysql,MYSQL_HOST,MYSQL_LOGIN,MYSQL_PASSWD)) {
                return -1;
        }
        if (mysql_select_db(&mysql,MYSQL_DB)) {
                mysql_close(&mysql);
                return -1;
        }
        mysql_query(&mysql,"SELECT champ1 FROM table1");
        result = mysql_use_result(&mysql);
        while((row = mysql_fetch_row(result))) {
                printf("%s",row[1]);
                fflush(stdout);
        }
        mysql_close(&mysql);
        return 0;
}

A voir également

Ajouter un commentaire

Commentaires

jsonor
Messages postés
49
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
5 septembre 2006
-
Salut,
il faut installer le client MySQL (www.mysql.com)
pekotaga
Messages postés
1
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
30 mars 2007
-
bonjour message d'un homme au bord de la crise de nerfs suite a de longue(mais alors trés longue) recherche sur ce sujet j'en arrive toujours a la meme conclusion
undefined reference to''
je sais qu'il faut les librairies mysql ce que j'aie fait je sait qu'il faut ajouter -lmysqlclient mais ce dernier est helas introuvable par mon agl
peut etre qqun aurra il eu des probleme similaires et peut etre pourra on me guider .
merci d'avance pour vos reponse et merci a l'auteur de ce source
cs_bilal
Messages postés
87
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 mars 2010
-
comment connaitre tt les fonction possible utilisable en c,c++
si je fait cette requete select * table , cela m'affiche toute la bd mais pas le titre des colonnes !!
1°) comment dois je faire ?
2°) y a t'il autre chose que :
# MYSQL mysql;
# MYSQL_RES *result;
# MYSQL_ROW row;
3°) comment faire pour connaitre l'info des colonnes d'une table ? Int ; varchar ; date etc ???

Merci
cs_bilal
Messages postés
87
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 mars 2010
-
voila j'ai trouve. ;-)
cela affiche le contenu de votre bd dans une grille avec le titre des colonnes.

MYSQL_RES * result;
MYSQL_ROW elementsColonne;
MYSQL_FIELD * fields;

AnsiString titre;

if (mysql_query(conn,"SELECT * FROM table1"))
{
//("Erreur dans la requête\n");
return;
}
else
{
result = mysql_store_result(conn);
fields = mysql_fetch_fields(result);
StringGrid1->ColCount = mysql_num_fields(result);
StringGrid1->RowCount = 0;

for(int i = 0; i < mysql_num_fields(result); i++)
{ titre = fields[i].name;
StringGrid1->Cells[i][0] = titre;
}

for(unsigned int i = 1; i <= result->row_count; i++)
{
elementsColonne = mysql_fetch_row(result);
StringGrid1->RowCount++;

for(unsigned int j = 0; j<= mysql_num_fields(result); j++)
StringGrid1->Cells[j][i] = elementsColonne[j];
}

}
cs_hdaniel
Messages postés
37
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
Pour la différence entre mysql_connect et mysql_real_connect

un extrait de la source en dit long sur l'énooorme différence:

MYSQL *mysql_connect(MYSQL *mysql, const char *host,
const char *user, const char *passwd) {
return mysql_real_connect(mysql,host,user,passwd,NULL,9000,NULL,0);
}
Commenter la réponse de cs_Kirua

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.