Αποκτήστε πρόσβαση στη MySQL χρησιμοποιώντας το C

Με αυτό το σεμινάριο παρουσιάζω στην κοινότητα πώς να αποκτήσετε πρόσβαση σε μια βάση δεδομένων MySQL από τη γλώσσα προγραμματισμού C και χωρίς να χρησιμοποιήσετε πάρα πολλές εξαρτήσεις, με

libmysqlclient

Ελπίζω ότι θα είναι χρήσιμο σε όσους χρειάζονταν αυτόν τον τύπο τεκμηρίωσης και συνεπώς θα συνεχίσουν να συνεισφέρουν στην κοινότητα SL και να βοηθούν όσους δεν διαθέτουν INTERNET.

διαμόρφωση

Πρώτα πρέπει να ελέγξουμε ότι έχουμε εγκαταστήσει τις βιβλιοθήκες σχεδιασμού *-dev για να έχετε πρόσβαση από C / C ++ στη MySQL.

mysql_config --libs

Θα πρέπει να φαίνεται κάπως έτσι:

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

Σε περίπτωση που ελέγξετε ότι η βιβλιοθήκη δεν είναι εγκατεστημένη, την εγκαθιστούμε με την ακόλουθη εντολή:

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

Αφού επαληθεύσουμε και εγκαταστήσουμε αυτό που χρειαζόμαστε για τη σύνδεση μεταξύ MySQL και C, προχωράμε στη δημιουργία της βάσης δεδομένων:

ΔΗΜΙΟΥΡΓΙΑ ΔΕΔΟΜΕΝΩΝ δοκιμή. Δοκιμή ΧΡΗΣΗΣ; ΔΗΜΙΟΥΡΓΙΑ δεδομένων ΠΙΝΑΚΑΣ (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);

Προγραμματισμός και συλλογή

Συνεχίζουμε να δημιουργούμε τον κωδικό:

Ερώτημα. Γ

/ * βιβλιοθήκες για χρήση * / #include / * βιβλιοθήκη που μας επιτρέπει να κάνουμε χρήση συνδέσεων και ερωτημάτων με το MySQL * / #include / * Για να χρησιμοποιήσετε το printf, κ.λπ. * / int main () {MYSQL * conn; / * μεταβλητή σύνδεσης για MySQL * / MYSQL_RES * res; / * μεταβλητή που θα περιέχει το αποτέλεσμα της σειράς ερωτήματος * / MYSQL_ROW. / * μεταβλητή που θα περιέχει τα πεδία για κάθε εγγραφή που έχει συμβουλευτεί * / char * server = "localhost"; / * διεύθυνση διακομιστή 127.0.0.1, localhost ή διεύθυνση IP * / char * user = "root"; / * χρήστης για να ρωτήσετε τη βάση δεδομένων * / char * password = "root"; / * κωδικός πρόσβασης για τον εν λόγω χρήστη * / char * database = "test"; / * όνομα της βάσης δεδομένων για ερώτημα * / conn = mysql_init (NULL); / * προετοιμασία για να ακυρώσετε τη σύνδεση * / / * σύνδεση στη βάση δεδομένων * / εάν (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * ορίστε τις παραμέτρους σύνδεσης προηγουμένως ορίστηκε * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * εάν υπάρχει σφάλμα καθορίστε ποιο σφάλμα ήταν * / έξοδος (1). } / * αποστολή ερωτήματος SQL * / if (mysql_query (conn, "select * from data")) {/ * ορισμός του ερωτήματος και την προέλευση της σύνδεσης * / fprintf (stderr, "% s \ n", mysql_error ( Συν) έξοδος (1) · } res = mysql_use_result (conn);
	Printf("ID \ tName \ t \ age \ n"); ενώ ((σειρά = mysql_fetch_row (res))! = NULL) / * μέσω της μεταβλητής res με όλες τις εγγραφές που έχουν ληφθεί για χρήση * /
		Printf("% s \ t% s \ t% s \ n", σειρά [0], σειρά [1], σειρά [2]); / * η μεταβλητή σειρά γίνεται πίνακας για τον αριθμό των πεδίων στον πίνακα * / / * η μεταβλητή res απελευθερώνεται και η σύνδεση είναι κλειστή * / mysql_free_result (res); mysql_close (σύνδεση); }

Συλλέγουμε με:

gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

Επαλήθευση

Εκτελούμε:

./Ερώτηση

πηγή: Ιστολόγιο του Hugo4295


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Κορατσούκι dijo

    Καλό αυτό, αποθηκευμένο στο οπλοστάσιο σεναρίων και σεμιναρίων στην κονσόλα! +1 για τον συνεργάτη σας ...

  2.   rodrigo dijo

    Γεια σας, πολλά συγχαρητήρια για ό, τι υπάρχει στον ιστό σχετικά με αυτό το ζήτημα, η δική σας ήταν η πλησιέστερη λύση. λίγο αμφιβολία, γιατί δεν παίρνω το εκτελέσιμο ;;

    κατά τη στιγμή της comílar δεν σημειώνει κανένα σφάλμα αλλά δεν δημιουργεί το ./ser4

  3.   Αντρέλο dijo

    Έχετε ιδέα πώς να το κάνετε στο Fedora;

  4.   νικητής ντε λα ο dijo

    Δεν διαφωνώ με την κοινοποίηση των πληροφοριών, αλλά εάν δεν παραχωρούνται τα πνευματικά δικαιώματα, καθώς αυτό το παράδειγμα έγινε από εμένα από το 2011 και εδώ είναι η διεύθυνση της αρχικής πηγής

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

    1.    Έλαβ dijo

      Κανένα πρόβλημα Βίκτορ, αλλά αν παρατηρήσετε ότι δεν έχω πάρει το άρθρο από τον ιστότοπό σας, αλλά από άλλο όπου δυστυχώς δεν έβαλαν την πηγή. Ωστόσο, τώρα επεξεργάζομαι το άρθρο .. 😉

  5.   Alfonso Ovidio López Morales dijo

    εξαιρετική ανταλλαγή γνώσεων μεγάλη ελευθερία

  6.   ΝΤΑΝΙΕΛΑ ΦΕΡΝΑΝΤΕΖ dijo

    Και πώς μπορούν να γίνουν εισαγωγές ???