Mit diesem Tutorial präsentiere ich der Community, wie man mit der Programmiersprache C auf eine MySQL-Datenbank zugreift und ohne zu viele Abhängigkeiten zu verwenden
libmysqlclient
Ich hoffe, es wird für diejenigen nützlich sein, die diese Art von Dokumentation benötigen, und somit weiterhin einen Beitrag zur SL-Community leisten und denen helfen, die kein INTERNET haben.
Konfiguration
Zuerst müssen wir überprüfen, ob wir die Designbibliotheken installiert haben *-dev
um von C / C ++ auf MySQL zugreifen zu können.
mysql_config --libs
Es sollte ungefähr so aussehen:
-Wl, -Bsymbolische Funktionen –L / usr / lib / mysql -lmysqlclient rdynamic
Wenn Sie überprüfen, ob die Bibliothek nicht installiert ist, installieren wir sie mit dem folgenden Befehl:
sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
Da wir überprüfen und installieren, was wir für die Verbindung zwischen MySQL und C benötigen, fahren wir mit der Erstellung der Datenbank fort:
CREATE DATABASE-Test; USE Test; CREATE TABLE-Daten (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, Name varchar (40), age int); IN Datenwerte einfügen (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);
Programmierung und Kompilierung
Wir erstellen weiterhin den Code:
Query.c
/ * zu verwendende Bibliotheken * / #include / * Bibliothek, mit der wir Verbindungen und Abfragen mit MySQL nutzen können * / #include / * Um printf usw. zu verwenden. * / int main () {MYSQL * conn; / * Verbindungsvariable für MySQL * / MYSQL_RES * res; / * Variable, die das Ergebnis der Abfrage enthält * / MYSQL_ROW row; / * Variable, die die Felder für jeden konsultierten Datensatz enthält * / char * server = "localhost"; / * Serveradresse 127.0.0.1, localhost oder IP-Adresse * / char * user = "root"; / * Benutzer zum Abfragen der Datenbank * / char * password = "root"; / * Passwort für den betreffenden Benutzer * / char * database = "test"; / * Name der abzufragenden Datenbank * / conn = mysql_init (NULL); / * Initialisierung zum Nullstellen der Verbindung * / / * Verbindung zur Datenbank herstellen * / if (! mysql_real_connect (conn, Server, Benutzer, Kennwort, Datenbank, 0, NULL, 0)) {/ * Definieren Sie die zuvor eingestellten Verbindungsparameter * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * Wenn ein Fehler vorliegt, definieren Sie, welcher Fehler * / exit (1) war. } / * SQL-Abfrage senden * / if (mysql_query (conn, "select * from data")) {/ * Definition der Abfrage und Ursprung der Verbindung * / fprintf (stderr, "% s \ n", mysql_error ( conn)); Ausfahrt (1); } res = mysql_use_result (conn); printf("ID \ tName \ t \ age \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * durchläuft die Variable res mit allen zur Verwendung erhaltenen Datensätzen * / printf("% s \ t% s \ t% s \ n", Zeile [0], Zeile [1], Zeile [2]); / * Die Zeilenvariable wird zu einem Array für die Anzahl der Felder in der Tabelle. * / / * Die res-Variable wird freigegeben und die Verbindung wird geschlossen. * / mysql_free_result (res); mysql_close (conn); }}
Wir kompilieren mit:
gcc -o Abfrage $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
Überprüfung
Wir führen aus:
./Abfrage
Quelle: Hugo4295s Blog
Gut, dass in meinem Arsenal an Skripten und Tutorials auf der Konsole gespeichert! +1 für Ihren Partner ...
Hallo, viele Glückwünsche zu allem, was im Internet zu diesem Problem zu finden ist. Ihr Problem war der Lösung am nächsten. Nur ein kleiner Zweifel, warum bekomme ich die ausführbare Datei nicht?
Zum Zeitpunkt der Komprimierung markiert es keinen Fehler, generiert jedoch nicht die ./ser4
Irgendeine Idee, wie es in Fedora geht?
Ich bin nicht anderer Meinung als die Weitergabe der Informationen, aber wenn das Urheberrecht nicht angegeben ist, da dieses Beispiel seit 2011 von mir erstellt wurde und hier die Adresse der Originalquelle angegeben ist
http://hugo4295.blogspot.mx/search?q=MYSQL
Kein Problem, Victor, aber wenn Sie bemerken, dass ich den Artikel nicht von Ihrer Website genommen habe, sondern von einer anderen, wo sie leider nicht die Quelle angegeben haben. Im Moment bearbeite ich jedoch den Artikel. 😉
ausgezeichnetes Wissen teilen große Freiheit
Und wie können Einfügungen vorgenommen werden ???