Rekaman Aktif Codeigniter: Sisipkan, Pilih, Perbarui, Hapus

Daftar Isi:

Anonim

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

Rekaman aktif adalah pola desain yang memudahkan interaksi dengan database dengan cara yang mudah, aman, dan fasih.

Rekaman aktif memiliki keuntungan sebagai berikut

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

Dalam tutorial ini, Anda akan mempelajari:

  • Cara menggunakan Rekaman Aktif: Contoh
  • Konfigurasi Database CodeIgniter
  • CodeIgniter Masukkan Rekaman Aktif
  • CodeIgniter Pilih Rekaman Aktif
  • CodeIgniter Perbarui Rekaman Aktif
  • CodeIgniter Hapus Rekaman Aktif

Cara menggunakan Rekaman Aktif: Contoh

Dalam tutorial kali ini, kita akan membahas database tutorial. Kami akan memiliki dua tabel, satu dengan pesanan yang lain dengan detail.

Tutorial ini mengasumsikan Anda telah menginstal dan menjalankan database MySQL.

Jalankan skrip berikut untuk membuat database 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 order dan order_details. Hubungan antara dua tabel ditentukan oleh kolom id di pesanan dan order_id di tabel order_details.

Konfigurasi Database CodeIgniter

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

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

cari baris berikut di file konfigurasi

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

Perbarui kode di atas menjadi yang 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 MySQL Anda.

Selain detail konfigurasi database, kita juga perlu memberi tahu CodeIgniter untuk memuat pustaka database saat memuat

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

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 pustaka database saat aplikasi dimulai

CodeIgniter Masukkan Rekaman Aktif

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

Buat file baru application / controllers / ActiveRecordController.php

Tambahkan kode berikut ke ActiveRecordController.php

 '2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}

SINI,

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

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

Sekarang buka routes.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-appphp -S localhost:3000

SINI,

  • Browser perintah di atas ke baris perintah dan mulai server built-in di port 3000.

Muat URL berikut ke browser Anda

http: // localhost: 3000 / ar / masukkan

Anda akan mendapatkan hasil sebagai berikut

order has successfully been created

Buka database tutorial MySQL dan periksa tabel pesanan

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

CodeIgniter Pilih Rekaman Aktif

Pada bagian ini, kita akan melihat cara membaca record yang kita miliki di database dan menampilkannya di web browser sebagai unordered list.

Tambahkan metode berikut ke ActiveRecordController

public function index() {$query = $this->db->get('orders');echo "

Orders Listing

";echo "
    ";foreach ($query->result() as $row) {echo "
  • $row->customer_name
  • ";}echo "
";}

SINI,

  • $ query = $ this-> db-> get ('orders'); menjalankan kueri pemilihan terhadap tabel pesanan yang memilih semua bidang
  • echo "

    Daftar Pesanan

    "; menampilkan judul HTML ukuran 3
  • echo "
      "; mencetak tag pembuka untuk daftar HTML yang tidak dipesan
    • foreach ($ query-> result () as $ row) {…} menggunakan loop for untuk mengulang hasil yang dikembalikan dari database. echo "
    • $ row-> customer_name
    • "; mencetak customer_name dari database

    Sebelum Anda memuat URL berikut, Anda dapat memuat beberapa record lagi ke database.

    Sekarang mari kita tentukan rute untuk query 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 Perbarui Rekaman Aktif

    Pada bagian ini, kita akan membahas tentang bagaimana menggunakan catatan aktif untuk memperbarui database. Misalkan 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 field dan nilai yang ingin kita perbarui dalam tabel database
    • $ this-> db-> where ('id', 1); menetapkan klausa where dari kueri pembaruan
    • $ this-> db-> update ('pesanan', $ data); menghasilkan kueri pembaruan SQL dan menjalankannya pada database kami.

    Kode di atas akan menghasilkan pernyataan SQL berikut

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

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

    Tambahkan rute berikut

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

    Simpan perubahannya

    Muat URL berikut di browser web

    Sekarang mari kita tampilkan record database dan lihat apakah perubahan telah terpengaruh.

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

    CodeIgniter Hapus Rekaman 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,

    • $ this-> db-> where ('id', 1); mengatur klausa where
    • $ this-> db-> delete ('pesanan'); menghapus baris database dalam tabel pesanan berdasarkan kriteria yang ditetapkan menggunakan klausa where.

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

    http: // localhost: 3000 / ar / delete

    Ringkasan

    Dalam tutorial ini, Anda telah mempelajari cara bekerja dengan rekaman aktif untuk menyisipkan, memperbarui, menghapus, dan memilih rekaman 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.