Podaci su krvna linija većine aplikacija. Podaci moraju biti pohranjeni na takav način da se mogu dalje analizirati kako bi se dobili uvidi i olakšale poslovne odluke. Podaci se obično pohranjuju u bazu podataka. Među glavnim brigama prilikom interakcije s bazom podataka su sigurnost, jednostavnost pristupa i implementacije strukturiranog jezika upita (SQL) specifične za dobavljača baze podataka.
Aktivni zapis je obrazac dizajna koji olakšava interakciju s bazom podataka na jednostavan, siguran i rječit način.
Aktivni zapis ima sljedeće prednosti
- Umetanje, ažuriranje i brisanje zapisa jednostavnim lancima aktivnih zapisa
- Dostavlja korisnički unos na siguran način koristeći parametre
- Omogućuje vam rad s više mehanizama baze podataka, kao što su MySQL, SQL Server itd., Bez prepisivanja aplikacijskog koda
- CodeIgniter koristi upravljačke programe specifične za svaki mehanizam baze podataka u pozadini.
U ovom vodiču naučit ćete:
- Kako koristiti Active Record: Primjer
- Konfiguracija baze podataka CodeIgniter
- CodeIgniter Umetanje aktivnog zapisa
- CodeIgniter Odaberite Aktivni zapis
- CodeIgniter Ažuriranje aktivnog zapisa
- CodeIgniter Izbriši aktivni zapis
Kako koristiti Active Record: Primjer
U ovom uputstvu razgovarat ćemo o bazi podataka udžbenika. Imat ćemo dvije tablice, jednu s narudžbama, drugu s detaljima.
Ovaj vodič pretpostavlja da imate instaliranu i pokrenutu MySQL bazu podataka.
Pokrenite sljedeće skripte za stvaranje baze podataka tutorijala:
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;
Gornji kôd stvara bazu podataka nazvanu ci_active_record i stvara dvije tablice, naime narudžbe i detalji_poretka. Odnos između dviju tablica definiran je ID-om stupca u narudžbama i id_naloga u tablici detalji_pojedinosti.
Konfiguracija baze podataka CodeIgniter
Sada ćemo konfigurirati našu aplikaciju tako da može komunicirati s ovom bazom podataka.
Otvorite konfiguracijsku datoteku baze podataka koja se nalazi u application / config / database.php
pronađite sljedeće redove u konfiguracijskoj datoteci
'hostname' => 'localhost','username' => '','password' => '','database' => '',
Ažurirajte gornji kod na sljedeći
'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',
Napomena: morat ćete zamijeniti korisničko ime i lozinku onima koji odgovaraju vašoj konfiguraciji MySQL-a.
Pored detalja o konfiguraciji baze podataka, također moramo reći CodeIgniteru da učita biblioteku baze podataka kada se učita
Korak 1) Otvorite sljedeću datoteku application / config / autoload.php
Korak 2) Pronađite knjižnice ključeva polja $ autoload i učitajte biblioteku baze podataka kao što je prikazano dolje
$autoload['libraries'] = array('database');
OVDJE,
- Gornji kod učitava biblioteku baze podataka kada se aplikacija pokreće
CodeIgniter Umetanje aktivnog zapisa
Za potrebe testiranja stvorit ćemo kontroler i definirane rute koje ćemo koristiti za interakciju s našom aplikacijom putem aktivnog zapisa.
Stvorite novu datotečnu aplikaciju / kontrolere / ActiveRecordController.php
Dodajte sljedeći kôd u ActiveRecordController.php
'2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}
OVDJE,
- $ data = […] definira podatke varijable niza koji koriste nazive tablice baze podataka kao ključeve niza i dodjeljuje im vrijednosti
- $ this-> db-> insert ('narudžbe', $ podataka); poziva metodu umetanja biblioteke baze podataka, prosljeđuje redoslijed imena tablice i varijablu polja $ data kao parametar. Ovaj redak generira SQL INSERT izraz koristeći ključeve niza kao imena polja i vrijednosti niza kao vrijednosti koje treba umetnuti u bazu podataka.
Sada kada smo uspješno stvorili metodu kontrolera za aktivni zapis, sada ćemo morati stvoriti rutu koju ćemo pozvati za izvršavanje metode kontrolera.
Sada otvorite routes.php u aplikaciji / config / routes.php
dodajte sljedeći redak rutama
$route['ar/insert'] = 'activerecordcontroller/store_order';
OVDJE,
- Definiramo rutu ar / insert koja poziva store_order ActiveRecordControllera.
Pokrenimo sada web poslužitelj da testiramo našu metodu.
Pokrenite sljedeću naredbu za pokretanje ugrađenog poslužitelja za PHP
cd C:\Sites\ci-appphp -S localhost:3000
OVDJE,
- Gornji preglednik naredbi na naredbeni redak i pokrenite ugrađeni poslužitelj na portu 3000.
Učitajte sljedeći URL u svoj preglednik
http: // localhost: 3000 / ar / insert
Dobit ćete sljedeće rezultate
order has successfully been created
Otvorite bazu podataka MySQL tutorijala i provjerite tablicu narudžbi
Moći ćete stvoriti novostvoreni redak kao što je prikazano na donjoj slici
CodeIgniter Odaberite Aktivni zapis
U ovom ćemo odjeljku vidjeti kako pročitati zapise koje imamo u bazi podataka i prikazati ih u web pregledniku kao neuređeni popis
Dodajte sljedeću metodu u ActiveRecordController
public function index() {$query = $this->db->get('orders');echo "Orders Listing
";echo "
- ";foreach ($query->result() as $row) {echo "
- $row->customer_name ";}echo "
OVDJE,
- $ upit = $ ovo-> db-> get ('narudžbe'); pokreće upit za odabir prema tablici narudžbi odabirom svih polja
- echo "
Popis narudžbi
"; prikazuje HTML naslov veličine 3 - odjek "
- "; ispisuje početnu oznaku za neuređeni HTML popis
- foreach ($ query-> result () kao $ row) {…} koristio je for petlju za petlju kroz rezultate vraćene iz baze podataka. echo "
- $ row-> customer_name "; ispisuje ime_kupac iz baze podataka
Prije nego što učitate sljedeći URL, u bazu podataka možete učitati još nekoliko zapisa.
Omogućimo sada definiranje rute za SELECT upit
Otvorite tablicu application / config / routes.php
Dodajte sljedeću rutu
$route['ar'] = 'activerecordcontroller';
OVDJE,
- Ruta ar upućuje na indeksnu metodu klase ActiveRecordController. To je zadano, zato nismo naveli metodu indeksa kao što ste to učinili za rutu koja ubacuje zapise
Pod pretpostavkom da je web poslužitelj već pokrenut, učitajte sljedeći URL
http: // localhost: 3000 / ar
U vašem web pregledniku trebali biste vidjeti rezultate koji su vrlo slični sljedećim
CodeIgniter Ažuriranje aktivnog zapisa
U ovom ćemo odjeljku govoriti o tome kako koristiti aktivni zapis za ažuriranje baze podataka. Recimo da želimo ažurirati ime kupca Joe Thomas na Joe.
Dodajte sljedeću metodu u klasu 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';}
OVDJE,
- $ data = […] definira polja i vrijednosti koje želimo ažurirati u tablici baze podataka
- $ this-> db-> where ('id', 1); postavlja klauzulu upita za ažuriranje
- $ this-> db-> update ('narudžbe', $ podaci); generira upit za ažuriranje SQL-a i izvršava ga prema našoj bazi podataka.
Gornji kod stvorit će sljedeći SQL izraz
UPDATE orders SET customer_name = 'Joe' WHERE id = 1;
Ažurirajmo sada route.php aplikaciju / config / routes.php
Dodajte sljedeću rutu
$route['ar/update'] = 'activerecordcontroller/update_order';
Spremite promjene
U web-preglednik učitajte sljedeći URL
Prikažimo sada zapise baze podataka i provjerimo jesu li promjene pogođene.
Kao što možete vidjeti iz gore dane Slike, prvi je zapis ažuriran s Joea Thomasa na Joea.
CodeIgniter Izbriši aktivni zapis
Sada ćemo izbrisati zapis iz baze podataka. Izbrisat ćemo zapis s id-om 3.
Dodajte sljedeću metodu u ActiveRecordController
public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}
OVDJE,
- $ this-> db-> where ('id', 1); postavlja klauzulu where
- $ this-> db-> delete ('narudžbe'); briše redak baze podataka u tablici narudžbi na temelju kriterija postavljenih pomoću klauzule where.
Da biste izvršili gornji kod, učitajte sljedeći URL u naš web preglednik
http: // localhost: 3000 / ar / delete
Sažetak
U ovom vodiču naučili ste kako raditi s aktivnim zapisom za umetanje, ažuriranje, brisanje i odabir zapisa iz baze podataka. Radili smo sa statičkim vrijednostima za stvaranje zapisa, ažuriranje i brisanje. U sljedećem uputstvu stvorit ćemo korisničko sučelje koje korisnik može koristiti za dinamičko stvaranje zapisa u bazi podataka.