Accéder à MySQL en utilisant C

Avec ce tutoriel, je présente à la communauté comment accéder à une base de données MySQL à partir du langage de programmation C et sans utiliser trop de dépendances, avec juste

libmysqlclient

J'espère qu'il sera utile à ceux qui ont besoin de ce type de documentation et ainsi continuer à contribuer à la communauté SL et à aider ceux qui n'ont pas INTERNET.

configuration

Nous devons d'abord vérifier que les bibliothèques de conception sont installées *-dev pour pouvoir accéder de C / C ++ à MySQL.

mysql_config --libs

Cela devrait ressembler à quelque chose comme ceci:

-Wl, -Bsymbolic-functions –L / usr / lib / mysql -lmysqlclient rdynamic

Dans le cas où vous vérifiez que la bibliothèque n'est pas installée, nous l'installons avec la commande suivante:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

Puisque nous vérifions et installons ce dont nous avons besoin pour le lien entre MySQL et C, nous procédons à la création de la base de données:

CREATE DATABASE test; Test d'utilisation; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INSERT INTO data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , «Gustavo Romero», 25);

Programmation et compilation

Nous continuons à créer le code:

Requête.c

/ * bibliothèques que nous utiliserons * / #include / * bibliothèque qui nous permet d'utiliser des connexions et des requêtes avec MySQL * / #include / * Pour utiliser printf, etc. * / int main () {MYSQL * conn; / * variable de connexion pour MySQL * / MYSQL_RES * res; / * variable qui contiendra le résultat de la requête * / MYSQL_ROW row; / * variable qui contiendra les champs pour chaque enregistrement consulté * / char * server = "localhost"; / * adresse du serveur 127.0.0.1, localhost ou adresse IP * / char * user = "root"; / * utilisateur pour interroger la base de données * / char * password = "root"; / * mot de passe de l'utilisateur en question * / char * database = "test"; / * nom de la base de données à interroger * / conn = mysql_init (NULL); / * initialisation pour annuler la connexion * / / * se connecter à la base de données * / if (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * définir les paramètres de connexion précédemment définis * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * s'il y a une erreur définir quelle erreur était * / exit (1); } / * envoyer une requête SQL * / if (mysql_query (conn, "select * from data")) {/ * définition de la requête et l'origine de la connexion * / fprintf (stderr, "% s \ n", mysql_error ( Connecticut)); sortie (1); } res = mysql_use_result (conn);
	printf("ID \ tNom \ t \ age \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * boucle à travers la variable res avec tous les enregistrements obtenus pour utilisation * /
		printf("% s \ t% s \ t% s \ n", ligne [0], ligne [1], ligne [2]); / * la variable de ligne devient un tableau par le nombre de champs dans la table * / / * la variable res est libérée et la connexion est fermée * / mysql_free_result (res); mysql_close (conn); }

Nous compilons avec:

gcc -o Requête $ (mysql_config --cflags) Requête.c $ (mysql_config -–libs)

Vérification

Nous exécutons:

./Requete

source: Le blog de Hugo4295


7 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   koratsuki dit

    Bon ça, sauvegardé dans mon arsenal de scripts et de tutoriels sur console! +1 pour votre partenaire ...

  2.   rodrigo dit

    Bonjour, beaucoup de félicitations pour tout ce qui se trouve sur le web concernant ce problème, le vôtre était le plus proche de la solution. juste un petit doute, pourquoi est-ce que je n'ai pas l'exécutable ??

    au moment de la comílar il ne marque aucune erreur mais il ne génère pas le ./ser4

  3.   Andrélo dit

    Une idée comment le faire dans Fedora?

  4.   vainqueur de la o dit

    Je ne suis pas en désaccord avec le partage des informations mais si le copyright n'est pas placé puisque cet exemple a été réalisé par moi depuis 2011 et voici l'adresse de la source d'origine

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    animé dit

      Pas de problème Victor, mais si vous remarquez que je n'ai pas pris l'article de votre site, mais d'un autre où malheureusement ils n'ont pas mis la source. Cependant, en ce moment, je modifie l'article .. 😉

  5.   Alfonso Ovidio López Morales dit

    excellent partage des connaissances grande liberté

  6.   DANIELA FERNANDEZ dit

    Et comment faire des insertions ???