Requête sur un serveur mysql

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

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)