Catatan Aktif Codeigniter: Sisipkan, Pilih, Perbarui, Hapus

Data adalah inti dari sebagian besar aplikasi. Data perlu disimpan sedemikian rupa sehingga dapat dianalisis lebih lanjut untuk memberikan wawasan dan memfasilitasi keputusan bisnis. Data biasanya disimpan dalam database. Di antara perhatian utama saat berinteraksi dengan database adalah keamanan, kemudahan akses, dan implementasi Structured Query Language (SQL) khusus vendor database.

Catatan aktif adalah pola desain yang memudahkan interaksi dengan database dengan mudah, aman, dan lancar.

Rekaman aktif memiliki keuntungan sebagai berikut:

  • Sisipkan, perbarui, dan hapus catatan dengan metode sederhana rangkaian catatan aktif
  • Mengirimkan input pengguna dengan cara yang aman menggunakan parameter
  • Memungkinkan Anda bekerja dengan beberapa mesin basis data seperti MySQL, SQL Server, dll. tanpa menulis ulang kode aplikasi
  • CodeIgniter menggunakan driver khusus untuk setiap mesin database di latar belakang.

Cara menggunakan Rekaman Aktif: Contoh

Dalam tutorial ini, kita akan membahas database tutorial. Kita akan memiliki dua tabel, satu berisi pesanan dan satu lagi berisi detail.

Tutorial ini mengasumsikan Anda memilikinya MySQL database terinstal dan berjalan.

Jalankan skrip berikut untuk membuat basis data tutorial:

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;

Kode di atas membuat database bernama ci_active_record dan membuat dua tabel, yaitu orders dan order_details. Hubungan antara kedua tabel tersebut ditentukan oleh kolom id di orders dan order_id di tabel order_details.

Konfigurasi Basis Data CodeIgniter

Kami sekarang akan mengkonfigurasi aplikasi kami untuk dapat berkomunikasi dengan database ini.

Buka file konfigurasi database yang terletak di application/config/database.php

temukan baris berikut dalam file konfigurasi

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

Perbarui kode di atas menjadi berikut ini

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

Catatan: Anda perlu mengganti nama pengguna dan kata sandi dengan yang sesuai dengan konfigurasi Anda MySQL.

Selain rincian konfigurasi database, kita juga perlu memberitahu CodeIgniter untuk memuat pustaka database saat dimuat

Langkah 1) Buka file berikut application/config/autoload.php

Langkah 2) Temukan pustaka kunci array $autoload dan muat pustaka database seperti yang ditunjukkan di bawah ini

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

SINI,

  • Kode di atas memuat perpustakaan database ketika aplikasi dimulai

CodeIgniter Sisipkan Catatan Aktif

Untuk tujuan pengujian, kami akan membuat pengontrol dan menentukan rute yang akan kami gunakan untuk berinteraksi dengan aplikasi kami melalui catatan aktif.

Buat file baru application/controllers/ActiveRecordController.php

Tambahkan kode berikut ke 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';
    }
}

SINI,

  • $data = […] mendefinisikan variabel array data yang menggunakan nama tabel database sebagai kunci array dan memberikan nilai padanya
  • $ini->db->insert('pesanan', $data); memanggil metode penyisipan perpustakaan database, meneruskan perintah nama tabel dan variabel array $data sebagai parameter. Baris ini menghasilkan pernyataan SQL INSERT menggunakan kunci array sebagai nama field dan nilai array sebagai nilai yang akan dimasukkan ke dalam database.

Sekarang kita telah berhasil membuat metode pengontrol untuk rekaman aktif, sekarang kita perlu membuat rute yang akan kita panggil untuk menjalankan metode pengontrol.

Sekarang buka rute.php di application/config/routes.php

tambahkan baris berikut ke rute

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

SINI,

  • Kami mendefinisikan rute ar/insert yang memanggil store_order dari ActiveRecordController.

Sekarang mari kita mulai server web untuk menguji metode kita.

Jalankan perintah berikut untuk memulai server bawaan untuk PHP

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

SINI,

  • Perintah di atas browser ke baris perintah dan memulai server bawaan pada port 3000.

Muat URL berikut ke browser Anda

http://localhost:3000/ar/insert

Anda akan mendapatkan hasil berikut ini

order has successfully been created

Buka MySQL database tutorial dan periksa tabel pesanan

Anda akan dapat membuat baris yang baru seperti yang ditunjukkan pada gambar di bawah

CodeIgniter Sisipkan Catatan Aktif

CodeIgniter Pilih Rekaman Aktif

Di bagian ini, kita akan melihat cara membaca catatan yang kita miliki di database dan menampilkannya di browser web sebagai daftar tidak berurutan

Tambahkan metode berikut ke 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>";
    }

SINI,

  • $query = $ini->db->dapatkan('pesanan'); menjalankan kueri pemilihan terhadap tabel pesanan dengan memilih semua bidang
  • gema “ Daftar Pesanan ”; menampilkan judul HTML ukuran 4
  • gema “ ”; mencetak tag pembuka untuk daftar HTML yang tidak diurutkan
  • foreach ($query->result() as $row) {…} menggunakan perulangan for untuk mengulang hasil yang dikembalikan dari database. gema “ $baris->nama_pelanggan ”; mencetak nama_pelanggan dari database

Sebelum Anda memuat URL berikut, Anda dapat memuat beberapa catatan lagi ke basis data.

Sekarang mari kita tentukan rute untuk kueri SELECT

Buka tabel application/config/routes.php

Tambahkan rute berikut

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

SINI,

  • Rute ar menunjuk ke metode indeks kelas ActiveRecordController. Ini secara default, itulah sebabnya kami tidak menentukan metode indeks seperti yang Anda lakukan untuk rute yang menyisipkan catatan

Dengan asumsi server web sudah berjalan, muat URL berikut

http://localhost:3000/ar

Anda seharusnya dapat melihat hasil yang sangat mirip dengan berikut ini di browser web Anda

CodeIgniter Pilih Rekaman Aktif

CodeIgniter Perbarui Catatan Aktif

Di bagian ini, kita akan membahas tentang cara menggunakan catatan aktif untuk memperbarui database. Katakanlah kita ingin memperbarui nama pelanggan Joe Thomas menjadi Joe.

Tambahkan metode berikut ke kelas 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';
    }

SINI,

  • $data = […] mendefinisikan bidang dan nilai yang ingin kita perbarui dalam tabel database
  • $ini->db->di mana('id', 1); menyetel klausa tempat dari kueri pembaruan
  • $ini->db->update('pesanan', $data); menghasilkan kueri pembaruan SQL dan menjalankannya terhadap database kami.

Kode di atas akan menghasilkan pernyataan SQL berikut

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

Sekarang mari perbarui aplikasi rute.php/config/routes.php

Tambahkan rute berikut

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

Simpan perubahannya

Muat URL berikut di browser web

CodeIgniter Perbarui Catatan Aktif

Sekarang mari kita tampilkan catatan database dan lihat apakah ada perubahan yang terpengaruh.

CodeIgniter Perbarui Catatan Aktif

Seperti yang Anda lihat dari Gambar di atas, rekor pertama telah diperbarui dari Joe Thomas ke Joe.

CodeIgniter Hapus Record Aktif

Kami sekarang akan menghapus catatan dari database. Kami akan menghapus catatan dengan id 3.

Tambahkan metode berikut ke ActiveRecordController

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

        echo 'order has successfully been deleted';
    }

SINI,

  • $ini->db->di mana('id', 1); mengatur klausa Where
  • $ini->db->hapus('pesanan'); menghapus baris database di tabel pesanan berdasarkan kriteria yang ditetapkan menggunakan klausa Where.

Untuk menjalankan kode di atas, muat URL berikut di browser web kita

http://localhost:3000/ar/delete

Ringkasan

Dalam tutorial ini, Anda telah mempelajari cara bekerja dengan record aktif untuk menyisipkan, memperbarui, menghapus dan memilih record dari database. Kami bekerja dengan nilai statis untuk membuat catatan, memperbarui, dan menghapus. Pada tutorial selanjutnya, kita akan membuat antarmuka pengguna yang dapat digunakan pengguna untuk membuat record secara dinamis di database.