Data adalah garis keturunan kebanyakan aplikasi. Data perlu disimpan sedemikian rupa sehingga dapat dianalisis lebih lanjut untuk memberikan pandangan dan memudahkan keputusan perniagaan. Data biasanya disimpan dalam pangkalan data. Di antara keprihatinan utama ketika berinteraksi dengan pangkalan data adalah keselamatan, kemudahan akses dan pelaksanaan pangkalan data vendor tertentu dari Structured Query Language (SQL).
Rekod aktif adalah corak reka bentuk yang memudahkan untuk berinteraksi dengan pangkalan data dengan cara yang mudah, selamat dan fasih.
Rekod aktif mempunyai kelebihan berikut
- Masukkan, kemas kini dan hapus rekod dengan rantai kaedah mudah rekod aktif
- Mengemukakan input pengguna dengan cara yang selamat menggunakan parameter
- Membolehkan anda bekerja dengan beberapa mesin pangkalan data seperti MySQL, SQL Server, dll tanpa menulis semula kod aplikasi
- CodeIgniter menggunakan pemacu khusus untuk setiap enjin pangkalan data di latar belakang.
Dalam tutorial ini, anda akan belajar:
- Cara menggunakan Rekod Aktif: Contoh
- Konfigurasi Pangkalan Data CodeIgniter
- CodeIgniter Masukkan Rekod Aktif
- CodeIgniter Pilih Rekod Aktif
- CodeIgniter Kemas kini Rekod Aktif
- CodeIgniter Padam Rekod Aktif
Cara menggunakan Rekod Aktif: Contoh
Dalam tutorial ini, kita akan membincangkan pangkalan data tutorial. Kami akan mempunyai dua jadual, satu dengan pesanan yang lain dengan perincian.
Tutorial ini mengandaikan bahawa anda telah memasang dan menjalankan pangkalan data MySQL.
Jalankan skrip berikut untuk membuat pangkalan 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;
Kod di atas membuat pangkalan data yang dinamakan ci_active_record dan membuat dua jadual iaitu pesanan dan pesanan_pesanan. Hubungan antara dua jadual ditentukan oleh id lajur dalam pesanan dan jadual order_id in order_details.
Konfigurasi Pangkalan Data CodeIgniter
Kami sekarang akan mengkonfigurasi aplikasi kami untuk dapat berkomunikasi dengan pangkalan data ini.
Buka fail konfigurasi pangkalan data yang terdapat di application / config / database.php
cari baris berikut dalam fail konfigurasi
'hostname' => 'localhost','username' => '','password' => '','database' => '',
Kemas kini kod di atas kepada yang berikut
'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',
Catatan: anda perlu mengganti nama pengguna dan kata laluan dengan yang sesuai dengan konfigurasi MySQL anda.
Sebagai tambahan kepada perincian konfigurasi pangkalan data, kami juga harus memberitahu CodeIgniter untuk memuatkan pustaka pangkalan data ketika dimuat
Langkah 1) Buka aplikasi fail berikut / config / autoload.php
Langkah 2) Cari perpustakaan kunci array autoload $ dan muatkan pustaka pangkalan data seperti yang ditunjukkan di bawah
$autoload['libraries'] = array('database');
DI SINI,
- Kod di atas memuatkan pustaka pangkalan data semasa aplikasi dimulakan
CodeIgniter Masukkan Rekod Aktif
Untuk tujuan pengujian, kami akan membuat pengawal dan menentukan laluan yang akan kami gunakan untuk berinteraksi dengan aplikasi kami melalui rekod aktif.
Buat aplikasi / pengawal fail baru / ActiveRecordController.php
Tambahkan kod 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';}}
DI SINI,
- $ data = […] mentakrifkan data pemboleh ubah array yang menggunakan nama jadual pangkalan data sebagai kunci array dan memberikan nilai kepada mereka
- $ this-> db-> insert ('pesanan', $ data); memanggil kaedah memasukkan pustaka pangkalan data, meneruskan pesanan nama jadual dan larik data $ sebagai parameter. Garis ini menghasilkan pernyataan SQL INSERT menggunakan kunci array sebagai nama medan dan nilai array sebagai nilai yang akan dimasukkan ke dalam pangkalan data.
Setelah berjaya membuat kaedah pengawal untuk rekod aktif, kita sekarang perlu membuat laluan yang akan kita panggil untuk melaksanakan kaedah pengawal.
Sekarang buka route.php dalam aplikasi / config / route.php
tambahkan baris berikut ke laluan
$route['ar/insert'] = 'activerecordcontroller/store_order';
DI SINI,
- Kami menentukan laluan ar / insert yang memanggil store_order ActiveRecordController.
Mari mulakan pelayan web untuk menguji kaedah kami.
Jalankan arahan berikut untuk memulakan pelayan terbina dalam untuk PHP
cd C:\Sites\ci-appphp -S localhost:3000
DI SINI,
- Penyemak imbas arahan di atas ke baris arahan dan mulakan pelayan terbina dalam port 3000.
Muatkan URL berikut ke penyemak imbas anda
http: // localhost: 3000 / ar / sisipkan
Anda akan mendapat keputusan berikut
order has successfully been created
Buka pangkalan data tutorial MySQL dan periksa jadual pesanan
Anda akan dapat baris yang baru dibuat seperti yang ditunjukkan dalam gambar di bawah
CodeIgniter Pilih Rekod Aktif
Di bahagian ini, kita akan melihat bagaimana membaca catatan yang ada dalam pangkalan data dan memaparkannya dalam penyemak imbas web sebagai senarai yang tidak tersusun
Tambahkan kaedah 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 "
DI SINI,
- $ query = $ this-> db-> get ('pesanan'); menjalankan pertanyaan pilih terhadap jadual pesanan memilih semua medan
- echo "
Penyenaraian Pesanan
"; memaparkan tajuk HTML bersaiz 3 - gema "
- "; mencetak tanda pembuka untuk senarai HTML yang tidak tersusun
- foreach ($ query-> result () sebagai $ baris) {…} menggunakan for loop untuk mencari hasil yang dikembalikan dari pangkalan data. echo "
- $ baris-> nama_pelanggan "; mencetak nama pelanggan dari pangkalan data
Sebelum memuatkan URL berikut, anda boleh memuatkan beberapa lagi rekod ke pangkalan data.
Mari kita tentukan laluan untuk pertanyaan SELECT
Buka jadual application / config / route.php
Tambahkan laluan berikut
$route['ar'] = 'activerecordcontroller';
DI SINI,
- Laluan ar menunjukkan kaedah indeks kelas ActiveRecordController. Ini secara lalai itulah sebabnya kami tidak menentukan kaedah indeks seperti yang anda lakukan untuk laluan yang memasukkan catatan
Dengan andaian pelayan web sudah berjalan, muatkan URL berikut
http: // localhost: 3000 / ar
Anda semestinya dapat melihat hasil yang sangat serupa dengan yang berikut di penyemak imbas web anda
CodeIgniter Kemas kini Rekod Aktif
Di bahagian ini, kita akan membincangkan bagaimana menggunakan rekod aktif untuk mengemas kini pangkalan data. Katakan kita mahu mengemas kini nama pelanggan Joe Thomas kepada Joe.
Tambahkan kaedah 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';}
DI SINI,
- $ data = […] menentukan medan dan nilai yang ingin kami kemas kini dalam jadual pangkalan data
- $ ini-> db-> di mana ('id', 1); menetapkan klausa tempat pertanyaan kemas kini
- $ this-> db-> kemas kini ('pesanan', $ data); menghasilkan pertanyaan kemas kini SQL dan melaksanakannya ke pangkalan data kami.
Kod di atas akan menghasilkan penyataan SQL berikut
UPDATE orders SET customer_name = 'Joe' WHERE id = 1;
Sekarang mari kita mengemas kini aplikasi rout.php / config / route.php
Tambahkan laluan berikut
$route['ar/update'] = 'activerecordcontroller/update_order';
Simpan perubahan
Muatkan URL berikut di penyemak imbas web
Sekarang mari kita paparkan rekod pangkalan data dan lihat apakah perubahan telah dipengaruhi.
Seperti yang anda lihat dari Gambar yang diberikan di atas, rekod pertama telah dikemas kini dari Joe Thomas ke Joe.
CodeIgniter Padam Rekod Aktif
Kami sekarang akan memadam rekod dari pangkalan data. Kami akan memadam rekod dengan id 3.
Tambahkan kaedah berikut ke ActiveRecordController
public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}
DI SINI,
- $ ini-> db-> di mana ('id', 1); menetapkan klausa mana
- $ this-> db-> delete ('pesanan'); menghapus baris pangkalan data dalam jadual pesanan berdasarkan kriteria yang ditetapkan menggunakan klausa mana.
Untuk melaksanakan kod di atas, muatkan URL berikut di penyemak imbas web kami
http: // localhost: 3000 / ar / padam
Ringkasan
Dalam tutorial ini, anda telah belajar bagaimana bekerja dengan rekod aktif untuk memasukkan, mengemas kini, menghapus dan memilih rekod dari pangkalan data. Kami bekerja dengan nilai statik untuk membuat rekod, mengemas kini dan memadam. Dalam tutorial seterusnya, kami akan membuat antara muka pengguna yang dapat digunakan pengguna untuk membuat catatan secara dinamis dalam pangkalan data.