السلام عليكم ,
هذا اصدار قم 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 و هو تقريباً يدعم هذه البيئات كلها .