من خلال هذا البرنامج التعليمي ، أقدم للمجتمع كيفية الوصول إلى قاعدة بيانات MySQL من لغة البرمجة C وبدون استخدام الكثير من التبعيات ، فقط
libmysqlclient
آمل أن يكون مفيدًا لأولئك الذين يحتاجون إلى هذا النوع من الوثائق وبالتالي يستمرون في المساهمة في مجتمع SL ومساعدة أولئك الذين ليس لديهم إنترنت.
ترتيب
أولاً يجب أن نتحقق من تثبيت مكتبات التصميم لدينا *-dev
لتتمكن من الوصول من C / C ++ إلى MySQL.
mysql_config - ليبس
يجب أن يظهر مثل هذا:
-Wl، -Bsymbolic-function –L / usr / lib / mysql -lmysqlclient rdynamic
في حالة التأكد من عدم تثبيت المكتبة ، نقوم بتثبيتها بالأمر التالي:
sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno -rict-aliasing -DUNIV_LINUX -DUNIV_LINUX
نظرًا لأننا نتحقق ونثبت ما نحتاجه للرابط بين MySQL و C ، فإننا ننتقل إلى إنشاء قاعدة البيانات:
إنشاء اختبار قاعدة البيانات ؛ اختبار الاستخدام إنشاء بيانات الجدول (معرف int AUTO_INCREMENT NOT NULL PRIMARY KEY ، اسم varchar (40) ، العمر int) ؛ INSERT INTO data VALUES (NULL، 'Alma Hernandez'، 28)، (NULL، 'Jose Sanchez'، 39)، (NULL، 'Martin loera'، 25)، (NULL، 'Leonardo Cortez'، 26)، (NULL ، "جوستافو روميرو" ، 25) ؛
البرمجة والتجميع
نواصل إنشاء الكود:
الاستعلام ج
/ * مكتبات لاستخدامها * / #include / * مكتبة تتيح لنا الاستفادة من الاتصالات والاستعلامات مع MySQL * / #include / * من أجل استخدام printf ، إلخ. * / int main () {MYSQL * conn؛ / * متغير الاتصال لـ MySQL * / MYSQL_RES * res ؛ / * المتغير الذي سيحتوي على نتيجة الاستعلام * / MYSQL_ROW row؛ / * المتغير الذي سيحتوي على الحقول لكل سجل تمت استشارته * / char * server = "localhost" ؛ / * عنوان الخادم 127.0.0.1 أو المضيف المحلي أو عنوان IP * / char * user = "root" ؛ / * المستخدم للاستعلام عن قاعدة البيانات * / char * password = "root" ؛ / * كلمة المرور للمستخدم المعني * / char * database = "test" ؛ / * اسم قاعدة البيانات للاستعلام * / conn = mysql_init (NULL) ؛ / * التهيئة لإلغاء الاتصال * / / * الاتصال بقاعدة البيانات * / if (! mysql_real_connect (conn، server، user، password، database، 0، NULL، 0)) {/ * حدد معلمات الاتصال المحددة مسبقًا * / fprintf (stderr، "٪ s \ n"، mysql_error (conn)) ؛ / * إذا كان هناك خطأ حدد الخطأ الذي كان * / exit (1) ؛ } / * إرسال استعلام SQL * / if (mysql_query (conn، "select * from data")) {/ * تعريف الاستعلام وأصل الاتصال * / fprintf (stderr، "٪ s \ n"، mysql_error ( كون)) ؛ خروج (1) ؛ } res = mysql_use_result (conn) ؛ printf("المعرف \ t الاسم \ t \ العمر \ n") ؛ while ((row = mysql_fetch_row (res))! = NULL) / * حلقة من خلال المتغير res مع جميع السجلات التي تم الحصول عليها للاستخدام * / printf("٪ s \ t٪ s \ t٪ s \ n" ، صف [0] ، صف [1] ، صف [2]) ؛ / * يصبح متغير الصف مصفوفة لعدد الحقول في الجدول * / / * يتم تحرير المتغير res ويتم إغلاق الاتصال * / mysql_free_result (res) ؛ mysql_close (conn) ؛ }
نحن نجمع مع:
gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
التحقق
ننفذ:
./Query
مصدر: مدونة Hugo4295
حسنًا ، تم حفظه في ترسانتي من البرامج النصية والبرامج التعليمية على وحدة التحكم! +1 لشريكك ...
مرحبًا ، تهانينا كثيرًا على كل ما هو موجود على الويب فيما يتعلق بهذه المشكلة ، كانت مشكلتك هي الأقرب إلى الحل. فقط قليل من الشك ، لماذا لا أحصل على الملف القابل للتنفيذ ؟؟
في وقت comílar ، لا يشير إلى أي خطأ ولكنه لا يولد ./ser4
أي فكرة عن كيفية القيام بذلك في فيدورا؟
لا أوافق على مشاركة المعلومات ولكن إذا لم يتم وضع حقوق الطبع والنشر منذ أن قمت بعمل هذا المثال منذ عام 2011 وهنا عنوان المصدر الأصلي
http://hugo4295.blogspot.mx/search?q=MYSQL
لا مشكلة فيكتور ولكن إذا لاحظت أنني لم أخرج المقال من موقعك بل من موقع آخر حيث للأسف لم يضعوا المصدر. ومع ذلك ، الآن أقوم بتحرير المقال .. 😉
ممتازة تقاسم المعرفة حرية كبيرة
وكيف يمكن ادخال ؟؟؟