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.