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 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 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
Sekarang mari kita tampilkan catatan database dan lihat apakah ada perubahan yang terpengaruh.
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.