الانتقال إلى المحتوى الرئيسي

كيفية الاتصال بقاعدة بيانات باستخدام لغة سي بشكل صحيح

البرمجة في ج يوفر فرصة للعمل مع قواعد البيانات ، وهي مهمة مهمة للمطورين. يتطلب الاتصال بقاعدة بيانات مهارات ومعرفة معينة لضمان السلامة والكفاءة.

واحدة من الطرق الأكثر شيوعا للاتصال بقاعدة بيانات هو استخدام مكتبة سكليتي. تتيح لك هذه المكتبة إنشاء وإدارة قواعد البيانات عبر الأنظمة الأساسية في ملف واحد. يمكن إجراء الاتصال بقاعدة بيانات سكليتي باستخدام مكتبة سي القياسية.

يبدأ الاتصال بقاعدة بيانات سكليت بإنشاء كائن من النوع 'سكليت 3' ، وهو اتصال مفتوح بقاعدة البيانات. بعد إنشاء اتصال ، يمكنك تشغيل استعلامات سكل ومعالجة النتائج.

تضمن هذه العملية الموثوقية والأمان عند العمل مع قواعد البيانات. من الضروري التعامل مع الأخطاء المتعلقة بالاتصال بقاعدة البيانات ، وكذلك التحكم في الوصول إلى البيانات من أجل منع الوصول غير المصرح به إلى المعلومات.

يسمح اتصال قاعدة البيانات المناسب باستخدام لغة سي للمطورين بإنشاء برامج قوية وفعالة قائمة على قواعد البيانات. يمكن أن يكون هذا مفيدا لإنشاء تطبيقات إدارة البيانات ومواقع الويب والمشاريع الأخرى التي تتطلب العمل بكمية كبيرة من المعلومات.

  1. قاعدة البيانات واللغة جيم
  2. الاتصال بقاعدة بيانات
  3. إنشاء اتصال قاعدة بيانات
  4. المصادقة في قاعدة بيانات
  5. عمليات قاعدة البيانات
  6. إنشاء جدول في قاعدة بيانات
  7. إضافة البيانات إلى جدول
  8. استعلامات قاعدة البيانات
  9. الأنواع الرئيسية من استعلامات سكل
  10. تنفيذ استعلامات سكل في ج
  11. ربط المعلمات
  12. تغيير البيانات في قاعدة البيانات
  13. إضافة سجلات جديدة
  14. تحديث السجلات الموجودة
  15. حذف السجلات
  16. سؤال وجواب
  17. كيف يمكنني الاتصال بقاعدة بيانات باستخدام لغة ج?
  18. هل من الممكن الاتصال بقاعدة بيانات دون استخدام أودبك?

قاعدة البيانات واللغة جيم

لغة سي هي واحدة من لغات البرمجة الأكثر شعبية ، والتي تستخدم على نطاق واسع للعمل مع قواعد البيانات. قواعد البيانات هي مجموعات بيانات منظمة يتم تخزينها ومعالجتها في نظام الكمبيوتر.

للعمل مع قواعد البيانات في ج ، غالبا ما يتم استخدام معيار سكل (لغة الاستعلام المهيكلة). سكل يسمح لك لإنشاء وتعديل وحذف بنية قاعدة البيانات ، وكذلك تنفيذ الاستعلامات لاستخراج أو إضافة أو تحديث أو حذف البيانات.

وعادة ما تستخدم المكتبات الخاصة للاتصال والعمل مع قاعدة بيانات في اللغة ج. واحدة من المكتبات الأكثر شعبية هي سكليتي. سكليتي هو قاعدة بيانات خفيفة الوزن التي يمكن أن تكون جزءا لا يتجزأ مباشرة في التطبيق. وهو يدعم معيار سكل ولها الأداء العالي والموثوقية.

للعمل مع قاعدة بيانات سكليتي في ج ، تحتاج إلى توصيل المكتبة المناسبة باستخدام # تضمين التوجيه المعالج. ثم تحتاج إلى تهيئة الاتصال بقاعدة البيانات باستخدام وظيفة سكليت 3_فتح. بعد ذلك ، يمكنك تشغيل استعلامات سكل باستخدام وظيفة سكليت 3_كسيك. يمكن الحصول على نتائج الاستعلام باستخدام وظيفة رد الاتصال.

للتعامل مع الأخطاء عند العمل مع قاعدة البيانات ، فمن المستحسن استخدام وظيفة سكليت 3_إرمسغ ، التي ترجع وصفا للخطأ الأخير الذي حدث أثناء تنفيذ الاستعلام.

عند الانتهاء من العمل مع قاعدة بيانات ج ، يجب إغلاق الاتصال باستخدام الدالة سكليت 3_ إغلاق.

وأخيرا ، توفر اللغة ج أدوات قوية للعمل مع قواعد البيانات. بفضل العديد من المكتبات المتاحة ومعيار سكل ، وتطوير التطبيقات التي تتفاعل مع قواعد البيانات يصبح مهمة بسيطة وفعالة.

الاتصال بقاعدة البيانات

عند العمل مع قاعدة بيانات في ج ، تحتاج إلى إكمال عدد من الخطوات للاتصال بها بنجاح.

1. قم بتوصيل المكتبة اللازمة:

# تشمل

2. تهيئة متغير نوع الخلية:

الخلية * كون;

3. إنشاء اتصال قاعدة بيانات:

كون = ميسكلينيت (لاغية);

كونكت(كون ، "المضيف" ، "المستخدم" ، "كلمة المرور" ،" اسم قاعدة البيانات " ، المنفذ ، فارغة ، 0);

يجب أن يتم تمرير القيم التالية إلى معلمات الدالة الخلية الحقيقية() :

  • كون هو مؤشر إلى متغير تهيئة من نوع الخلية
  • عنوان مضيف قاعدة البيانات
  • المستخدم-اسم المستخدم
  • كلمة المرور-كلمة المرور إلى قاعدة بيانات قاعدة البيانات
  • الاسم-اسم قاعدة البيانات التي يتصل بها المنفذ
  • - رقم المنفذ (عادة 3306)

4. تحقق من نجاح الاتصال:

إذا (كونيتيكت == لاغية) {

  برينتف ("خطأ الاتصال: ٪ ثانية

"،خطأ الخلية (كونيتيكت));

} آخر {

  برينتف ("الاتصال ناجح!

");

}

5. أغلق اتصال قاعدة البيانات في نهاية العمل:

الخلية إغلاق (كونيتيكت);

نتيجة لاستكمال جميع هذه الخطوات ، سوف تتصل بنجاح بقاعدة البيانات باستخدام لغة سي.

إنشاء اتصال قاعدة بيانات

للعمل مع قاعدة بيانات في ج ، تحتاج إلى إنشاء اتصال مع قاعدة البيانات نفسها. سيتطلب ذلك الخطوات التالية:

    بعد الانتهاء من العمل مع قاعدة البيانات ، يجب إغلاق الاتصال عن طريق الاتصال

    وظيفة سكليت 3_ إغلاق ()

    . فإنه يقبل مؤشر إلى الاتصال الذي يحتاج إلى أن تكون مغلقة.

    سكليت 3_ إغلاق (ديسيبل);

    بعد الانتهاء من هذه الخطوات ، سيتم إنشاء اتصال قاعدة البيانات وستكون قادرا على إجراء عمليات قاعدة بيانات مختلفة مثل إنشاء الجداول وإضافة البيانات وتنفيذ الاستعلامات وما إلى ذلك.

    1. المصادقة في قاعدة البيانات
    2. عند العمل مع قواعد البيانات ، من المهم ضمان أمن البيانات والتحكم في الوصول. واحدة من آليات الأمان الرئيسية هي مصادقة المستخدم.
    3. المصادقة هي عملية التحقق من هوية المستخدم. عندما يحاول المستخدم الوصول إلى قاعدة البيانات ، يجب عليه توفير بيانات المصادقة الصحيحة. إذا تم إدخال البيانات بشكل صحيح ، يتم منح المستخدم حق الوصول ؛ خلاف ذلك ، يتم تقييد الوصول.

    لنلق نظرة على بعض طرق المصادقة الشائعة في قواعد البيانات:

    مصادقة كلمة المرور. هذه هي طريقة المصادقة الأكثر شيوعا. يقوم المستخدم بإدخال اسم المستخدم وكلمة المرور الخاصة به ، ويتحقق النظام مما إذا كانت تتطابق مع البيانات المخزنة في قاعدة البيانات.

    المصادقة باستخدام وظائف التجزئة. في هذه الحالة ، يتم تجزئة كلمة مرور المستخدم باستخدام خوارزمية تجزئة موثوقة ، ويتم تخزين التجزئة في قاعدة البيانات. أثناء المصادقة ، يقوم المستخدم بإدخال كلمة المرور الخاصة به ، ويقوم النظام بتجزئتها ، ثم يقارن التجزئة الناتجة مع تلك المخزنة في قاعدة البيانات. تتجنب هذه الطريقة حفظ كلمات المرور بنص عادي.

    • المصادقة باستخدام الشهادات. في هذه الطريقة ، يقدم المستخدم شهادة تحتوي على معلومات حول هويته. يتحقق خادم قاعدة البيانات من صحة الشهادة ويقارن البيانات المحددة في الشهادة ببيانات قاعدة البيانات.
    • عند تطوير التطبيقات التي تتصل بقاعدة البيانات ، يجب مراعاة متطلبات الأمان واختيار طريقة المصادقة التي تلبي هذه المتطلبات على أفضل وجه.
    • عمليات قاعدة البيانات
    • تتضمن عمليات قاعدة البيانات إنشاء الجداول وإدخال البيانات واسترجاع المعلومات وتحديث البيانات وحذف السجلات.
    • إنشاء جدول: لإنشاء جدول في قاعدة بيانات ، تحتاج إلى تحديد هيكلها باستخدام استعلام إنشاء جدول سكل.

    إدخال البيانات: يتم استخدام استعلام إدراج سكل لإدراج البيانات في جدول. يسمح لك بتحديد قيم لكل عمود.

    الحصول على المعلومات: للحصول على معلومات من قاعدة البيانات ، يتم استخدام استعلام سكل حدد. يسمح لك بتحديد سجلات وأعمدة محددة بالشروط اللازمة.

    تحديث البيانات: يتم استخدام استعلام تحديث سكل لتحديث البيانات في الجدول. يسمح لك بتغيير القيم في سجلات وأعمدة معينة.

    حذف السجلات: يتم استخدام استعلام حذف سكل لحذف السجلات من الجدول. يسمح لك بحذف سجلات معينة باستخدام الشروط.سكل (لغة الاستعلام المهيكلة) هي لغة استعلام تستخدم للعمل مع قواعد البيانات العلائقية. لديها قدرات واسعة ومرونة ، مما يسمح لك لأداء العديد من عمليات قاعدة البيانات المختلفة.
    في ال لغة سي ، عادة ما تستخدم مكتبة سكليتي أو مكتبات متخصصة أخرى للعمل مع قاعدة بيانات ، والتي توفر واجهة ملائمة لتنفيذ استعلامات سكل والعمل مع البيانات.Sq سكل-запросов
    Операцияسكل-запрос
    Создание таблицыإنشاء جدول الجدول (العمود 1 نوع البيانات ، العمود 2 نوع البيانات،...)
    Внесение данныхأدخل في اسم_ الجدول (العمود 1 ، العمود 2،...) القيم (القيمة 1 ، القيمة 2،...)
    Получение информацииحدد العمود 1 ، العمود 2 ، ... من اسم_الجدول حيث الشرط

    Обновление данных

    تحديث الجدول _ اسم تعيين العمود 1 = القيمة 1 ، العمود 2 = القيمة 2 ، WHERE حيث الشرط

    Удаление записей

    حذف من اسم_الجدول حيث الشرط

    1. من المهم صياغة استعلامات سكل بشكل صحيح ومعالجة النتائج من أجل العمل بفعالية مع قاعدة البيانات والحصول على المعلومات اللازمة.
    2. إنشاء جدول في قاعدة البيانات

    عند العمل مع قاعدة بيانات ، تحتاج إلى إنشاء جدول يقوم بتخزين البيانات. الجدول عبارة عن مجموعة منظمة من السجلات تتكون من حقول. يمكن لكل حقل تخزين نوع معين من البيانات: الأرقام والسلاسل والتواريخ وما إلى ذلك.

    لإنشاء جدول في قاعدة البيانات ، اتبع الخطوات التالية:

    إنشاء اتصال قاعدة بيانات باستخدام لغة ج.

    تنفيذ استعلام سكل لإنشاء جدول.

    Пример кода для создания таблицы в базе данных:

    #include

    #include

    int main() {

    sqlite3 *db;

    char *err_msg = 0;

    int rc = sqlite3_open(":memory:", &db);

    if (rc != SQLITE_OK) {

    fprintf(stderr, "Не удалось открыть базу данных: %s

    ", sqlite3_errmsg(db));

    return 1;

    }

    char *sql = "CREATE TABLE Employees ("

    "Id INT PRIMARY KEY NOT NULL, "

    "Name TEXT NOT NULL, "

    "Age INT NOT NULL, "

    "Salary REAL NOT NULL);";

    rc = sqlite3_exec(db, sql, 0, 0, &err_msg);

    if (rc != SQLITE_OK ) {

    فبرينتف (ستدير ، " فشل الاستعلام سكل: ٪ ق

    "،متر مربع 3_رمسغ (ديسيبل));

    سكليت 3_مجانا;

    عودة 1;

    }

    سكليت 3_ إغلاق (ديسيبل);

    العودة 0;

    }

    1. إضافة البيانات إلى جدول
    2. ميسكل_حقيقي_كونكت
    3. أدخل في
    4. وظيفة الخلية
    5. <url>

    ، والتي ترجع عدد الصفوف المعدلة. إذا كان عدد الصفوف أكبر من 0 ، فقد تمت إضافة البيانات بنجاح.

    أغلق اتصال قاعدة البيانات باستخدام

    وظيفة الخلية

    .

    نموذج التعليمات البرمجية:

    # تشمل

    كثافة العمليات الرئيسية () {

    // Открытие соединения с базой данных

    MYSQL *connection = mysql_init(NULL);

    if (mysql_real_connect(connection, "localhost", "username", "password", "database", 0, NULL, 0) == NULL) {

    fprintf(stderr, "%s

    ", mysql_error(connection));

    exit(1);

    }

    // Создание запроса на добавление данных

    char *query = "INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...)";

    // Выполнение запроса

    if (mysql_real_query(connection, query, strlen(query)) != 0) {

    fprintf(stderr, "%s

    ", mysql_error(connection));

    exit(1);

    }

    // التحقق من عدد الصفوف المعدلة

    إذا (ميسكل_متأثر_صفوف (اتصال) > 0) {

    برينتف ("تمت إضافة البيانات بنجاح

    ");

    } آخر {

    برينتف ("خطأ في إضافة البيانات

    ");

    }

    // إغلاق الاتصال بـ

    قاعدة بيانات ميسكل إغلاق (اتصال);

    العودة 0;

    }

    في هذا المثال ، نفتح اتصال قاعدة بيانات ، وننشئ طلبا لإضافة البيانات ، وننفذ الطلب ، ونتحقق من عدد الصفوف التي تم تغييرها ، ونغلق الاتصال.

    • استعلامات قاعدة البيانات
    • الاتصال بقاعدة بيانات باستخدام لغة ج ، هناك حاجة للتفاعل معها. يتم استخدام استعلامات سكل لأداء القراءة والكتابة وتعديل البيانات في قاعدة البيانات.
    • الأنواع الرئيسية من استعلامات سكل
    • هناك عدة أنواع أساسية من استعلامات سكل التي يمكن تنفيذها باستخدام لغة سي:

    تحديد الاستعلامات: تستخدم لاستخراج البيانات من قاعدة بيانات. هذه الاستعلامات بإرجاع مجموعة من النتائج التي يمكن معالجتها في التعليمات البرمجية للتطبيق.

    إدراج الاستعلامات: تستخدم لإضافة بيانات جديدة إلى جدول قاعدة بيانات.

    استعلامات التحديث: تستخدم لتعديل البيانات الموجودة في جدول قاعدة البيانات.

    حذف الاستعلامات: تستخدم لحذف البيانات من جدول قاعدة البيانات.

    تنفيذ استعلامات سكل في ج

    لتنفيذ استعلامات سكل في ج ، تحتاج إلى استخدام وظائف المكتبة للعمل مع قاعدة البيانات. المكتبة الأكثر شيوعا للعمل مع قواعد البيانات في اللغة ج هو سكليتي.

    مثال على تنفيذ استعلام التحديد:

    # تشمل

    كثافة العمليات الرئيسية () {

    سكليت 3 * ديسيبل;

    // فتح قاعدة البيانات

    إنت أرسي = سكليت 3_ مفتوحة ("قاعدة البيانات.ديسيبل " ، & ديسيبل);

    // sq سكل запроса

    شار * سكل = "حدد * من المستخدمين";

    سكليت 3_ أكسيك (ديسيبل ، سكل ، رد الاتصال ، 0 ، 0);

    // закрытие базы данных

    سكليت 3_ إغلاق (ديسيبل);

    العودة 0;

    }

    إنت رد (باطل * لاوسد ،إنت أرغك ،شار * * أرغف، شار * * أزكولنام) {

    ل (إنت أنا = 0 ؛ أنا < أرغك ؛ أنا {) {

    برينتف ("٪ق = ٪ ق

    ", أزكولنام [أنا], أرجف [أنا] ? أرجف [أنا]: "لاغية");

    }

    برينتف("

    ");

    العودة 0;

    }

    Пример выполнения запроса إدراج:

    # تشمل

    كثافة العمليات الرئيسية () {

    سكليت 3 * ديسيبل;

    // открытие базы данных

    إنت أرسي = سكليت 3_ مفتوحة ("قاعدة البيانات.ديسيبل " ، & ديسيبل);

    // تنفيذ استعلام سكل

    شار * سكل = " إدراج في المستخدمين (الاسم والعمر) القيم ('جون' ، 25)";

    سكليت 3_ أكسيك (ديسيبل ، سكل ، 0 ، 0 ، 0);

    العودة 0;

    }

    وبالمثل ، يمكنك تشغيل أنواع أخرى من استعلامات سكل — تحديث وحذف. المبدأ الأساسي هو إنشاء استعلام سكل كسلسلة وتمريرها إلى

    وظيفة سكليت 3 إكسك ().

    ربط المعلمات

    عند تنفيذ استعلامات سكل ، غالبا ما يكون استخدام المعلمات مطلوبا. هذا يتجنب نقاط الضعف المتعلقة بحقن سكل ويجعل من السهل العمل مع البيانات الديناميكية.

    مثال على استخدام ربط المعلمة في استعلام سكل:

    # تشمل

    كثافة العمليات الرئيسية () {

    سكليت 3 * ديسيبل;

    سكليت 3_ستمت *ستمت;

    // فتح قاعدة البيانات

    إنت أرسي = سكليت 3_ مفتوحة ("قاعدة البيانات.ديسيبل " ، & ديسيبل);

    // подготовка SQL запроса с параметром

    char *sql = "SELECT * FROM users WHERE age > ?";

    sqlite3_prepare_v2(db, sql, -1, &stmt, 0);

    // связывание значения с параметром

    int age = 30;

    sqlite3_bind_int(stmt, 1, age);

    // выполнение SQL запроса

    while (sqlite3_step(stmt) == SQLITE_ROW) {

    printf("Name: %s

    ", sqlite3_column_text(stmt, 1));

    }

    // закрытие базы данных

    ، ثم ربط باستخدام

    الدالة سكليت 3_ بيند_نت ().

    عند تنفيذ استعلام سكل ، سيتم استبدال قيم المعلمة للأحرف

    ?

    .

    وبالتالي ، يعد الاستعلام عن قاعدة بيانات باستخدام لغة سي جزءا لا يتجزأ من العمل مع قواعد البيانات. استعلامات سكل تسمح لك لاستخراج وإضافة وتعديل البيانات في قاعدة بيانات ، فضلا عن تنفيذ عمليات أخرى للعمل مع المعلومات.

    1. تغيير البيانات في قاعدة البيانات
    2. بعد الاتصال بنجاح بقاعدة البيانات باستخدام لغة ج ، يمكنك البدء في تغيير البيانات الموجودة فيها. في هذا القسم ، سنلقي نظرة على عمليات تعديل البيانات الأساسية: إضافة سجلات جديدة وتحديث السجلات الموجودة وحذف السجلات.
    3. إضافة إدخالات جديدة

    لإضافة سجل جديد إلى قاعدة البيانات ، اتبع الخطوات التالية:

    إنشاء استعلام سكل لإضافة سجل جديد.

    تنفيذ استعلام سكل باستخدام الدالة التي توفرها قاعدة البيانات.

    تحقق من نتيجة تنفيذ طلب الأخطاء.

    مثال على إضافة سجل جديد إلى قاعدة البيانات:

    # تشمل

    # تشمل

    كثافة العمليات الرئيسية () {

    الخلية * كون;

    * الدقة;

    صف صف الخلية;

    كون = ميسكلينيت (لاغية);

    / * الاتصال بقاعدة البيانات */

    إذا (!(كون ، "لوكالهوست" ، "المستخدم" ، "كلمة المرور" ، "قاعدة البيانات" ، 0 ، لاغية ، 0)) {

    فبرينتف(ستدير، " ٪ ق

    ", mysql_error(conn));

    return 1;

    }

    /* Создаем SQL-запрос для добавления новой записи */

    char *query = "INSERT INTO users (name, age, email) VALUES ('John', 25, '[email protected]')";

    /* Выполняем SQL-запрос */

    if (mysql_query(conn, query)) {

    fprintf(stderr, "%s

    ", mysql_error(conn));

    return 1;

    }

    /* Закрываем соединение с базой данных */

    mysql_close(conn);

    1. return 0;
    2. }
    3. Обновление существующих записей

    لتحديث السجلات الموجودة في قاعدة البيانات ، اتبع الخطوات التالية:

    إنشاء استعلام سكل لتحديث السجلات.

    تنفيذ استعلام سكل باستخدام الدالة التي توفرها قاعدة البيانات.

    تحقق من نتيجة تنفيذ طلب الأخطاء.

    مثال على تحديث سجل موجود في قاعدة البيانات:

    # تشمل

    # تشمل

    كثافة العمليات الرئيسية () {

    الخلية * كون;

    * الدقة;

    صف صف الخلية;

    كون = ميسكلينيت (لاغية);

    /* Подключаемся к базе данных */

    إذا (!(كون ، "لوكالهوست" ، "المستخدم" ، "كلمة المرور" ، "قاعدة البيانات" ، 0 ، لاغية ، 0)) {

    فبرينتف(ستدير، " ٪ ق

    "،خطأ الخلية (كونيتيكت));

    عودة 1;

    }

    / * Sq سكل-запрос для обновления записи */

    شار * الاستعلام = " تحديث المستخدمين تعيين العمر=26 حيث اسم='جون'";

    / * Sq سكل-запрос */

    إذا (مسج الخلية (كونيتيكت ، الاستعلام)) {

    فبرينتف(ستدير، " ٪ ق

    "،خطأ الخلية (كونيتيكت));

    عودة 1;

    }

    / * إغلاق اتصال قاعدة البيانات */

    الخلية إغلاق (كونيتيكت);

    1. العودة 0;
    2. }
    3. حذف السجلات

    لحذف السجلات من قاعدة البيانات ، اتبع الخطوات التالية:

    إنشاء استعلام سكل لحذف السجلات.

    تنفيذ استعلام سكل باستخدام الدالة التي توفرها قاعدة البيانات.

    تحقق من نتيجة تنفيذ طلب الأخطاء.

    Пример удаления записи из базы данных:

    #include

    #include

    int main() {

    MYSQL *conn;

    MYSQL_RES *res;

    MYSQL_ROW row;

    conn = mysql_init(NULL);

    /* Подключаемся к базе данных */

    if (!mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0)) {

    fprintf(stderr, "%s

    ", mysql_error(conn));

    return 1;

    }

    /* Создаем SQL-запрос для удаления записи */

    char *query = "DELETE FROM users WHERE name='John'";

    /* Выполняем SQL-запрос */

    if (mysql_query(conn, query)) {

    fprintf(stderr, "%s

    "،خطأ الخلية (كونيتيكت));

    عودة 1;

    }

    / * إغلاق اتصال قاعدة البيانات */

    الخلية إغلاق (كونيتيكت);

    العودة 0;

    }

    وبالتالي ، فإن تنفيذ استعلامات سكل يسمح لك بتغيير البيانات في قاعدة البيانات عند العمل مع لغة سي.

    سؤال وجواب