الاصدار الجديد من فئة التعامل مع قواعد البيانات بلغة PHP | PDO

السلام عليكم ,

هذا اصدار قم 1.1.0 لـ PDO Database Class

ما الجديد ؟

تم اضافة دوال للتعامل مع Data Definition Language (DDL)

ليس كلها ولكن بعضها .

تم اضافة :

1 - انشاء جدول جديد

2- حذف جدول

3- اضافة عمود جديد

4- حذف عمود

5- اعادة تسمية عمود موجود.

اسلوب الاضافة والتعديل والحذف تغير قليلا (insert, update, delete)

سابقا كان :

<?php 

$db = DB::get();

$db->insert('table_name', [

        'name'         => 'name_value',
        'other_column' => 'column_value'
]);

$db->update('table_name', [

        'name'         => 'name_value',
        'other_column' => 'column_value'
], ['id', '=', 5]);

$db->delete('table_name', ['id', '=', 5]);

في هذا الاصدار :

<?php 

$db = DB::get();

$db->table('table_name')->insert([

        'name'         => 'name_value',
        'other_column' => 'column_value'
]);

$db-table('table_name')->>update([

        'name'         => 'name_value',
        'other_column' => 'column_value'
], ['id', '=', 5]);

$db->table('table_name')->delete(['id', '=', 5]);

انشاء جدول :

  $db = DB::get();

$db->table('students')->schema([
        'id' => 'increments',
        'name' => 'string:255 | not_null',
        'number' => 'int|unsigned';
    ])->create();

جملة SQL التي سيتم تنفيذها عن الكود السابق :

 CREATE TABLE students ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, number INT UNSIGNED

مثال اخر :

$db = DB::get();

   $schema = [
    'id' => 'increments',
    'username' => 'string:100|not_null',
    'full_name' => 'string:255|defualt:no-name',
    'joind' => 'timestamps',
    'user_email' => 'string:100|not_null',
];

$db->table('users')->schema($schema)->create();

اذا كنت مهتم يمكنك ايجاد الclass على github من هنا :

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

هذا رائع أخي ، عمل مميز


إن كنت تريد الاستمرار فيه و تحسينه فـ :

  • إجعله يعمل على أكثر من مدير قاعدة بيانات مثل (sql-server , sqlite , postgresql) .

  • إضافة دالة لعرض الـ QUERY بعد تجهيزها .

  • جعل نوع البيانات الراجعة (Object , associative array) كخير للمطور .

تحياتي

شكرا لك :)

إجعله يعمل على أكثر من مدير قاعدة بيانات مثل (sql-server , sqlite , postgresql)

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

إضافة دالة لعرض الـ QUERY بعد تجهيزها

فكرة جيدة شكرا لك

جعل نوع البيانات الراجعة (Object , associative array) كخير للمطور .

هذا خيار لمن يريد استخدام الclass فقد وضعت في الوصف

if you want to fetch as array go to line 102 replace PDO::FETCH_OBJ -> to -> PDO::FETCH_ASSOC

هذا خيار لمن يريد استخدام الclass فقد وضعت في الوصف

إذا من الممكن يمكنك جعله كثابت مثل باقي إعدادات الاتصال بقاعدة البيانات .

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

الامر ليس سوى دعم الامور المشتركة بين هذه البيئات وليس وضع كل تفصيل خاص بكل مدير قاعدة بيانات ، و في النهاية أنت تستخدم PDO و هو تقريباً يدعم هذه البيئات كلها .

جعلتني افكر بالموضوع جدياً .

ربما بالاصدار القادم .

كل ما في الامر اني اطلعت على حسابي في github ووجدت بعض الامور الساذجة بصراحة وقررت تطوير كل ما قمت بنشره .

وضعت استراتيجية ومخطط زمني وبدأت مع مع هذا الclass . اقتراحك ممتاز وسجلته على دفتر الملاحظات (اتمنى الا يضيع ككل مرة ههه ).

تحياتي :)