Requête sur un serveur mysql

Soyez le premier à donner votre avis sur cette source.

Vue 25 848 fois - Téléchargée 1 995 fois

Description

Voici un exemple de code sur un sujet peu développé sur ce forum.
Ce programme permet de se connecter à un serveur MySQL, y exécuter des requêtes et en afficher les résultats (s'il y en a).
Ce programme utilise l'API en C fournie avec MySQL (nul besoin de MySQL++).

MAJ du 21/01/04 : il y avait une faute dans l'ordre des arguments de la fonction mysql_real_connect ....J'ai rajouté la source dans un zip aussi.

Source / Exemple :


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

void requete(MYSQL *conn)
{
	MYSQL_RES *result;
	MYSQL_ROW elementsColonne;
	unsigned int nbColonnes;
	int i;

	if (mysql_query(conn,"SELECT * FROM nom_table"))
	{
		printf("Erreur dans la requête\n");
		return;
	}
	else // requête bonne, traitons les données qu'elle renvoit
	{
		result = mysql_store_result(conn);
		if (result != NULL)  // MySQL peut extraire des résultats
		{
			nbColonnes = mysql_num_fields(result);

			// récupère les enregistrements un par un
			while ((elementsColonne = mysql_fetch_row(result)))
			{
				for (i = 0; i < nbColonnes; i++)
					printf("%s\t", (elementsColonne[i] != NULL) ? elementsColonne[i] : "NULL");
				printf("\n");
			}
			// on libère la mémoire prise pour les résultats
			mysql_free_result(result);
		}
		else
			printf("Aucun résultat à la requête !\n");
	}
}

int main(int argc, char*argv[])
{
	MYSQL *conn;

	// initialisation
	if((conn = mysql_init(NULL)) == NULL)
	{
		printf("Erreur d'initialisation\n");
		return 0;
	}

	// connexion au serveur (ici, en local)
	if(mysql_real_connect(conn,"localhost","nom_utilisateur","mot_de_passe","nom_base",0,NULL,0)==NULL)
	{
		printf("Erreur de connexion\n");
		return 0;
	}
	
	// on lance la requête
	requete(conn);

	// on ferme la connexion au serveur MySQL
	mysql_close(conn);
}

Conclusion :


Ici, le header est "mysql/mysql.h", car je l'ai fait sous linux et que sous linux, il se trouve dans le répertoire "usr/include/mysql/".
Sous windows, cela doit être sensiblement la même chose.

Posez moi vos questions si ya ;)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6
Date d'inscription
jeudi 15 mars 2007
Statut
Membre
Dernière intervention
14 mai 2007

MON SOUCI MAJEUR EST QUE JE ME SERS D'1 DK40 JE DOIS CREER UNE APPLICATION QUI RECOIT DES DONNEES GPS ET QUI LES STOCKS DANS UNE BDD ET JE DOIS CREER AUSSI UN SERVEUR WEB DANS LE DK40 DE CHEZ BECKQUI FERA UNE REQUETE AVEC MON POSTE DE TRAVAIL LA OU EST STOCKé MA BDD POUR PRENDRE LES VALEURS GPS. SI QQ UN A DES TUYAUX, JE LES PRENDS.LA, J'AI CREER MES PAGE WEB ET J'AI REUSSI A LES STOCKER DANS LE DK40,LE PROBLEME EST QUE J'AI ANTERIEUREMENT FLASHé LE BIOS DU DK40 DONC IL N'Y A PLUS DE SERVEUR WEB(HTTPD).IL FAUDRAIS QUE QQ 1 M'AIDE A LE TROUVER ET PK PAS UN PROGRAMME POUR QUI TRAITE LE CGI.
SI YEN A 1 QUI CONNAIT LE DK40, QU'IL ME LE SIGNAL, CA SERAIT COOL.
MERCI A TOUS.
Messages postés
40
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
5 juillet 2007

Wouah, 4 ans aprés le post de cette source, elle est toujours sollicitée!!!
Enfin normal étant donnée la clarté.

http://www.mysql.com/
Rubrique: Products -> MySQL Drivers -> C API for MySQL -> Download

je pense que c'est "MySQL Connector/Net".
Enfin bon, si c'est pas ca, c'est plus trés loin.
Messages postés
6
Date d'inscription
jeudi 15 mars 2007
Statut
Membre
Dernière intervention
14 mai 2007

Pouvez-vous svp me donner le liens pour avoir la librairie mysql pour l'utilisation sous borland.
Messages postés
6
Date d'inscription
lundi 27 novembre 2000
Statut
Membre
Dernière intervention
11 juillet 2007

slt tout le monde;
savez-vous ou je peut trouvé le package mysql pour dev-c++
Messages postés
1
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
26 février 2007

salut
j'ai le même pb que DevelMan : l'affichage des erreurs sur mysql_real_connect, mysql_connect...
j'ai tester gcc -o azza.cpp -lmysqlclient et aussi gcc -o azza.cpp -lmysql mais ca marche pas, ds le deuxième cas le fichier azza.cpp disparu.
aussi j'ai pas compris servuer.exe c'est quoi ds votre code
merci j'attends votre aide avec passion.
Afficher les 33 commentaires

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.

Du même auteur (jsonor)