سجل Codeigniter النشط: إدراج، تحديد، تحديث، حذف

البيانات هي السلالة لمعظم التطبيقات. يجب تخزين البيانات بطريقة يمكن تحليلها بشكل أكبر لتوفير رؤى وتسهيل قرارات العمل. عادة ما يتم تخزين البيانات في قاعدة البيانات. من بين الاهتمامات الرئيسية عند التفاعل مع قاعدة البيانات هو الأمان وسهولة الوصول والتطبيقات الخاصة بمورد قاعدة البيانات للغة الاستعلام الهيكلية (SQL).

السجل النشط هو نمط تصميمي يجعل من السهل التفاعل مع قاعدة البيانات بطريقة سهلة وآمنة وبليغة.

السجل النشط لديه ما يليwing مزايا

  • قم بإدراج وتحديث وحذف السجلات باستخدام سلاسل طريقة بسيطة للسجل النشط
  • يرسل مدخلات المستخدم بطريقة آمنة باستخدام المعلمات
  • يتيح لك العمل مع محركات قواعد بيانات متعددة مثل MySQL وSQL Server وما إلى ذلك دون إعادة كتابة كود التطبيق
  • يستخدم CodeIgniter برامج تشغيل خاصة بكل محرك قاعدة بيانات في الخلفية.

كيفية استخدام السجل النشط: مثال

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

يفترض هذا البرنامج التعليمي أنك قمت بتثبيت قاعدة بيانات MySQL وتشغيلها.

تشغيل فولوwing البرامج النصية لإنشاء قاعدة بيانات تعليمية:

CREATE SCHEMA ci_active_record;

USE ci_active_record;

CREATE TABLE `order_details` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) DEFAULT NULL,
  `item` varchar(245) DEFAULT NULL,
  `quantity` int(11) DEFAULT '0',
  `price` decimal(10,2) DEFAULT '0.00',
  `sub_total` decimal(10,2) DEFAULT '0.00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1;

CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` timestamp NULL DEFAULT NULL,
  `customer_name` varchar(245) DEFAULT NULL,
  `customer_address` varchar(245) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1;

يقوم الكود أعلاه بإنشاء قاعدة بيانات باسم ci_active_record ويقوم بإنشاء جدولين هما Orders وorder_details. يتم تحديد العلاقة بين الجدولين بواسطة معرف العمود في الطلبات وorder_id في order_details الجدول.

تكوين قاعدة بيانات CodeIgniter

سنقوم الآن بتهيئة تطبيقنا ليكون قادرًا على التواصل مع قاعدة البيانات هذه.

افتح ملف تكوين قاعدة البيانات الموجود في application/config/database.php

حدد موقع following الخطوط في ملف التكوين

'hostname' => 'localhost',
	'username' => '',
	'password' => '',
	'database' => '',

قم بتحديث الكود أعلاه إلى المتابعةwing

'hostname' => 'localhost',
	'username' => 'root',
	'password' => 'letmein',
	'database' => 'ci_active_record',

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

بالإضافة إلى تكوين قاعدة البيانات ديtails، نحتاج أيضًا إلى إخبار CodeIgniter بتحميل مكتبة قاعدة البيانات عند تحميلها

الخطوة 1) افتح الفولوwing تطبيق الملف/config/autoload.php

الخطوة 2) حدد موقع مكتبات مفاتيح صفيف $autoload وقم بتحميل مكتبة قاعدة البيانات كما هو موضح أدناه

$autoload['libraries'] = array('database');

هنا،

  • يقوم الكود أعلاه بتحميل مكتبة قاعدة البيانات عند بدء تشغيل التطبيق

يقوم CodeIgniter بإدراج السجل النشط

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

قم بإنشاء ملف application/controllers/ActiveRecordController.php جديد

أضف المتابعةwing رمز إلى ActiveRecordController.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ActiveRecordController extends CI_Controller {
    public function store_order(){
        $data = [
            'date' => '2018-12-19',
            'customer_name' => 'Joe Thomas',
            'customer_address' => 'US'
        ];

        
        $this->db->insert('orders', $data); 

        echo 'order has successfully been created';
    }
}

هنا،

  • $data = […] يحدد بيانات متغير الصفيف الذي يستخدم أسماء جداول قاعدة البيانات كمفاتيح صفيف ويقوم بتعيين قيم لها
  • $this->db->insert('orders', $data); يستدعي طريقة الإدراج لمكتبة قاعدة البيانات، ويمرر أوامر اسم الجدول ومتغير الصفيف $data كمعلمة. يقوم هذا السطر بإنشاء عبارة SQL INSERT باستخدام مفاتيح الصفيف كأسماء الحقول وقيم الصفيف كالقيم التي سيتم إدراجها في قاعدة البيانات.

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

افتح الآنways.php في application/config/routes.php

أضف المتابعةwing خط إلى الطرق

$route['ar/insert'] = 'activerecordcontroller/store_order';

هنا،

  • نحدد مسارًا ar/insert يستدعي أمر store_order الخاص بـ ActiveRecordController.

لنبدأ الآن خادم الويب لاختبار طريقتنا.

تشغيل فولوwing أمر لبدء الخادم المدمج لـ PHP

cd C:\Sites\ci-app
php -S localhost:3000

هنا،

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

قم بتحميل المتابعةwing URL في متصفحك

http://localhost:3000/ar/insert

سوف تحصل على فولوwing النتائج

order has successfully been created

افتح قاعدة بيانات MySQL التعليمية وتحقق من جدول الطلبات

ستتمكن من إنشاء الصف حديثًا كما هو موضح في الصورة أدناه

يقوم CodeIgniter بإدراج السجل النشط

CodeIgniter حدد السجل النشط

سنرى في هذا القسم كيفية قراءة السجلات الموجودة لدينا في قاعدة البيانات وعرضها في متصفح الويب كقائمة غير مرتبة

أضف المتابعةwing طريقة إلى ActiveRecordController

public function index() {
        $query = $this->db->get('orders');
        
        echo "<h3>Orders Listing</h3>";
        echo "<ul>";
        
        foreach ($query->result() as $row) {
            echo "<li>$row->customer_name</li>";
        }
        
        echo "</ul>";
    }

هنا،

  • $query = $this->db->get('orders'); يقوم بتشغيل استعلام التحديد مقابل جدول الطلبات مع تحديد كافة الحقول
  • صدى صوت " قائمة الطلبات "؛ يعرض عنوان HTML بالحجم 4
  • صدى صوت " "؛ يطبع العلامة الافتتاحية لقائمة HTML غير المرتبة
  • foreach ($query->result() as $row) {...} استخدم حلقة for للتنقل خلال النتائج التي تم إرجاعها من قاعدة البيانات. صدى صوت " $row->customer_name "؛ يطبع اسم العميل من قاعدة البيانات

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

يتيح الآن تحديد مسار لاستعلام SELECT

افتح جدول application/config/routes.php

أضف المتابعةwing الطريق

$route['ar'] = 'activerecordcontroller';

هنا،

  • يشير المسار إلى طريقة الفهرس لفئة ActiveRecordController. هذا افتراضيًا، ولهذا السبب لم نحدد طريقة الفهرس كما فعلت للمسار الذي يقوم بإدراج السجلات

بافتراض أن خادم الويب يعمل بالفعل، قم بتحميل المتابعةwing URL

http://localhost:3000/ar

يجب أن تكون قادرًا على رؤية النتائج التي تشبه إلى حد كبير النتائجwing في متصفح الويب الخاص بك

CodeIgniter حدد السجل النشط

تحديث CodeIgniter للسجل النشط

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

أضف المتابعةwing طريقة لفئة ActiveRecordController

public function update_order() {
        $data = [
            'customer_name' => 'Joe',
        ];
        $this->db->where('id', 1);
        $this->db->update('orders', $data);
        echo 'order has successfully been updated';
    }

هنا،

  • $data = […] يحدد الحقول والقيم التي نرغب في تحديثها في جدول قاعدة البيانات
  • $this->db->where('id', 1); يعين جملة حيث لاستعلام التحديث
  • $this->db->update('orders', $data); يقوم بإنشاء استعلام تحديث SQL وتنفيذه على قاعدة البيانات الخاصة بنا.

الكود أعلاه سينتج المتابعةwing عبارة SQL

UPDATE orders SET customer_name = 'Joe' WHERE id = 1;

لنقم الآن بتحديث تطبيق Routes.php/config/routes.php

أضف المتابعةwing الطريق

$route['ar/update'] = 'activerecordcontroller/update_order';

احفظ التغييرات

قم بتحميل المتابعةwing URL في متصفح الويب

تحديث CodeIgniter للسجل النشط

دعونا الآن نعرض سجلات قاعدة البيانات ونرى ما إذا كانت التغييرات قد تأثرت.

تحديث CodeIgniter للسجل النشط

كما ترون من الصورة المذكورة أعلاه، تم تحديث السجل الأول من جو توماس إلى جو.

CodeIgniter حذف السجل النشط

سنقوم الآن بحذف سجل من قاعدة البيانات. سنقوم بحذف السجل بالمعرف 3.

أضف المتابعةwing طريقة إلى ActiveRecordController

public function delete_order() {
        $this->db->where('id', 3);
        $this->db->delete('orders');

        echo 'order has successfully been deleted';
    }

هنا،

  • $this->db->where('id', 1); يحدد جملة حيث
  • $this->db->delete('orders'); يحذف صف قاعدة البيانات في جدول الطلبات بناءً على المعايير المحددة باستخدام جملة المكان.

لتنفيذ الكود أعلاه، قم بتحميل الملف التاليwing URL في متصفح الويب الخاص بنا

http://localhost:3000/ar/delete

نبذة عامة

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