C का उपयोग करके MySQL तक पहुँचें

इस ट्यूटोरियल के साथ, मैं समुदाय के लिए C प्रोग्रामिंग भाषा से MySQL डेटाबेस को एक्सेस करने का तरीका प्रस्तुत करता हूं और बिना बहुत अधिक निर्भरता का उपयोग किए बिना

libmysqlclient

मुझे उम्मीद है कि यह उन लोगों के लिए उपयोगी होगा, जिन्हें इस प्रकार के प्रलेखन की आवश्यकता थी और इस प्रकार एसएल समुदाय में योगदान करना और उन लोगों की मदद करना जारी रहेगा जिनके पास इंटरनेट नहीं है।

विन्यास

पहले हमें यह देखना होगा कि हमारे पास डिज़ाइन लाइब्रेरी स्थापित है *-dev CSQL / 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 / शामिल / mysql -DBIG_JOINS = 1 -fno-सख्त-aliasing -DUNIV_LINUX -DUNIV_LINUX

चूँकि हम MySQL और C के बीच लिंक के लिए हमें जो चाहिए, उसे सत्यापित और स्थापित करते हैं, हम डेटाबेस के निर्माण के लिए आगे बढ़ते हैं:

जन्म परीक्षण परीक्षण; USE परीक्षण; रचनात्मक डेटा (आईडी int AUTO_INCREMENT NOT NULL PRIMARY KEY, नाम varchar (40), आयु int); INSERT INTO डेटा VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL) , 'गुस्तावो रोमेरो', 25);

प्रोग्रामिंग और संकलन

हम कोड बनाना जारी रखते हैं:

क्वेरी

/ * पुस्तकालयों हम * का उपयोग करेंगे * / * लाइब्रेरी जो हमें MySQL * / #include के साथ कनेक्शन और प्रश्नों का उपयोग करने की अनुमति देती है / * प्रिंटफ आदि का उपयोग करने के लिए। * (इंट मेन) () {MYSQL * कॉन; MySQL के लिए / * कनेक्शन चर * / MYSQL_RES * Res; / * चर जिसमें क्वेरी का परिणाम होगा * / MYSQL_ROW पंक्ति; / * वैरिएबल जिसमें परामर्शित प्रत्येक रिकॉर्ड के लिए फ़ील्ड होंगे * / char * सर्वर = "लोकलहोस्ट"; / * सर्वर एड्रेस 127.0.0.1, लोकलहोस्ट या आईपी एड्रेस * / चार * यूजर = "रूट"; / * डेटाबेस क्वेरी करने के लिए उपयोगकर्ता * / char * पासवर्ड = "रूट"; / * प्रश्न में उपयोगकर्ता के लिए पासवर्ड * / चार * डेटाबेस = "परीक्षण"; / * डेटाबेस का नाम क्वेरी के लिए * / Con = mysql_init (NULL); / * कनेक्शन को बंद करने के लिए आरंभीकरण * / / * डेटाबेस से कनेक्ट करें * / अगर (! mysql_real_connect (कॉन, सर्वर, उपयोगकर्ता, पासवर्ड, डेटाबेस, 0, NULL, 0)) {/ * कनेक्शन को पहले से निर्धारित * / परिभाषित करें। fprintf (stderr, "% s \ n", mysql_error (Con)); / * यदि कोई त्रुटि है जो त्रुटि थी * / निकास (1); } / * SQL क्वेरी भेजें * / (mysql_query (कॉन, "डेटा से * चुनें"))} / * क्वेरी की परिभाषा और कनेक्शन की उत्पत्ति * / fprintf (stderr, "% s \ n", mysql_error ( कॉन)); निकास (1); } res = mysql_use_result (कॉन);
	printf("आईडी \ tName \ t \ age \ n"); () (पंक्ति = mysql_fetch_row (res))! = NULL) / * लूप वेरिएबल रेस के माध्यम से उपयोग के लिए प्राप्त सभी रिकॉर्ड के साथ * /
		printf("% s \ t% s \ t% s \ n", पंक्ति [0], पंक्ति [1], पंक्ति [2]); / * पंक्ति चर तालिका में फ़ील्ड की संख्या से एक सरणी बन जाती है * / / * रेस चर जारी किया जाता है और कनेक्शन बंद हो जाता है * / mysql_free_result (रेस); mysql_close (कॉन); }

हम इसके साथ संकलित करते हैं:

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

सत्यापन

हम निष्पादित करते हैं:

./Query

Fuente: ह्यूगो 4295 का ब्लॉग


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   कोरत्सुकी कहा

    अच्छा है कि, कंसोल पर स्क्रिप्ट और ट्यूटोरियल के मेरे शस्त्रागार में बचाया! आप साथी के लिए +1 ...

  2.   rodrigo कहा

    नमस्कार, इस मुद्दे के बारे में वेब पर आने वाली हर चीज के लिए बहुत-बहुत बधाई, समाधान के लिए आपका सबसे करीबी था। बस थोड़ा संदेह है, मुझे निष्पादन योग्य क्यों नहीं मिलता है ??

    comílar के समय यह किसी भी त्रुटि को चिह्नित नहीं करता है लेकिन यह ./ser4 उत्पन्न नहीं करता है

  3.   आंद्रेलो कहा

    किसी भी विचार यह कैसे Fedora में करना है?

  4.   विजेता डे ला ओ कहा

    मैं जानकारी साझा करने से असहमत नहीं हूं लेकिन अगर कॉपीराइट नहीं रखा गया है क्योंकि यह उदाहरण मेरे द्वारा 2011 से बनाया गया था और यहां मूल स्रोत का पता है

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

    1.    इलाव कहा

      कोई समस्या नहीं, विक्टर, लेकिन अगर आप ध्यान दें कि मैंने आपकी साइट से लेख नहीं लिया है, लेकिन दूसरे से जहां दुर्भाग्य से उन्होंने स्रोत नहीं डाला। हालाँकि, अभी मैं इस लेख को संपादित करता हूँ .. edit

  5.   अल्फोंसो ओविडियो लोपेज़ मोरालेस कहा

    उत्कृष्ट साझा ज्ञान महान स्वतंत्रता

  6.   डेनियल फर्नांडीज कहा

    और सम्मिलन कैसे किया जा सकता है ???