Duomenys yra daugelio programų pagrindas. Duomenys turi būti saugomi taip, kad juos būtų galima toliau analizuoti, siekiant suteikti įžvalgų ir palengvinti verslo sprendimus. Duomenys paprastai saugomi duomenų bazėje. Tarp pagrindinių problemų, susijusių su sąveikaujant su duomenų baze, yra saugumas, paprastas prieiga ir duomenų bazės tiekėjui pritaikyti struktūrinės užklausos kalbos (SQL) diegimai.
Aktyvus įrašas yra dizaino modelis, leidžiantis lengvai, saugiai ir iškalbingai bendrauti su duomenų baze.
Aktyvus įrašas turi šiuos privalumus
- Įterpkite, atnaujinkite ir ištrinkite įrašus naudodami paprasto aktyvaus įrašo metodo grandines
- Vartotojo įvestį pateikia saugiai, naudodamas parametrus
- Leidžia dirbti su keliais duomenų bazių varikliais, tokiais kaip „MySQL“, „SQL Server“ ir kt., Neperrašant programos kodo
- „CodeIgniter“ naudoja kiekvienam duomenų bazės varikliui specifines tvarkykles fone.
Šioje pamokoje sužinosite:
- Kaip naudoti aktyvųjį įrašą: pavyzdys
- „CodeIgniter“ duomenų bazės konfigūracija
- „CodeIgniter“ įterpti aktyvų įrašą
- „CodeIgniter“ pasirinkite Aktyvus įrašas
- „CodeIgniter“ atnaujinkite aktyvų įrašą
- CodeIgniter Ištrinti aktyvų įrašą
Kaip naudoti aktyvųjį įrašą: pavyzdys
Šioje pamokoje aptarsime mokymo programos duomenų bazę. Turėsime dvi lenteles, viena su užsakymais, kita su detalėmis.
Šioje pamokoje daroma prielaida, kad „MySQL“ duomenų bazė yra įdiegta ir veikia.
Norėdami sukurti mokymo programos duomenų bazę, paleiskite šiuos scenarijus:
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;
Aukščiau pateiktas kodas sukuria duomenų bazę, pavadintą „ci_active_record“, ir sukuria dvi lenteles, būtent užsakymus ir užsakymo_duomenis. Santykį tarp dviejų lentelių apibrėžia stulpelio ID užsakymuose ir order_id lentelėje order_details.
„CodeIgniter“ duomenų bazės konfigūracija
Dabar sukonfigūruosime savo programą, kad galėtume bendrauti su šia duomenų baze.
Atidarykite duomenų bazės konfigūracijos failą, esantį programoje / config / database.php
suraskite šias eilutes konfigūracijos faile
'hostname' => 'localhost','username' => '','password' => '','database' => '',
Atnaujinkite aukščiau pateiktą kodą taip
'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',
Pastaba: turėsite pakeisti vartotojo vardą ir slaptažodį į tuos, kurie atitinka jūsų „MySQL“ konfigūraciją.
Be duomenų bazės konfigūracijos informacijos, mes taip pat turime nurodyti „CodeIgniter“ įkelti duomenų bazės biblioteką, kai ji įkeliama
1 žingsnis. Atidarykite šią failo programą / config / autoload.php
2 žingsnis. Raskite $ autoload masyvo raktų bibliotekas ir įkelkite duomenų bazės biblioteką, kaip parodyta žemiau
$autoload['libraries'] = array('database');
ČIA
- Aukščiau pateiktas kodas įkelia duomenų bazės biblioteką, kai programa paleidžiama
„CodeIgniter“ įterpti aktyvų įrašą
Testavimo tikslais sukursime valdiklį ir apibrėžtus maršrutus, kuriuos naudosime sąveikai su savo programa per aktyvų įrašą.
Sukurkite naują failų programą / valdikliai / ActiveRecordController.php
Įtraukite šį kodą į ActiveRecordController.php
'2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}
ČIA
- $ data = […] apibrėžia masyvo kintamojo duomenis, kurie duomenų bazės lentelių pavadinimus naudoja kaip masyvo raktus ir priskiria jiems reikšmes
- $ this-> db-> insert ('užsakymai', $ duomenys); iškviečia duomenų bazės bibliotekos įterpimo metodą, kaip parametrą perduoda lentelės pavadinimų eilutes ir masyvo kintamąjį $ data. Ši eilutė sukuria SQL INSERT sakinį naudodama masyvo raktus kaip laukų pavadinimus ir masyvo reikšmes kaip reikšmes, kurios bus įterptos į duomenų bazę.
Dabar, sėkmingai sukūrę valdiklio metodą aktyviam įrašui, dabar turėsime sukurti maršrutą, kurį paskambinsime vykdydami valdiklio metodą.
Dabar atidarykite maršrutus.php programoje / config / route.php
prie maršrutų pridėkite šią eilutę
$route['ar/insert'] = 'activerecordcontroller/store_order';
ČIA
- Apibrėžiame maršrutą „ar / insert“, kuris iškviečia „ActiveRecordController“ parduotuvės_pasakymą.
Pradėkime žiniatinklio serverį, kad išbandytume savo metodą.
Paleiskite šią komandą, norėdami paleisti integruotą PHP serverį
cd C:\Sites\ci-appphp -S localhost:3000
ČIA
- Pirmiau nurodytą komandų naršyklę į komandinę eilutę ir paleiskite įmontuotą serverį 3000 prievade.
Įkelkite šį URL į savo naršyklę
http: // localhost: 3000 / ar / insert
Gausite šiuos rezultatus
order has successfully been created
Atidarykite „MySQL“ mokymo duomenų bazę ir patikrinkite užsakymų lentelę
Galėsite naujai sukurtą eilutę, kaip parodyta paveikslėlyje žemiau
„CodeIgniter“ pasirinkite Aktyvus įrašas
Šiame skyriuje pamatysime, kaip skaityti įrašus, kuriuos turime duomenų bazėje, ir rodyti juos žiniatinklio naršyklėje kaip nesutvarkytą sąrašą
Pridėkite šį metodą prie „ActiveRecordController“
public function index() {$query = $this->db->get('orders');echo "Orders Listing
";echo "
- ";foreach ($query->result() as $row) {echo "
- $row->customer_name ";}echo "
ČIA
- $ query = $ this-> db-> get ('užsakymai'); vykdo pasirinkimo užklausą pagal užsakymų lentelę, pasirinkdama visus laukus
- echo "
Užsakymų sąrašas
"; rodo 3 dydžio HTML antraštę - aidas „
- “; atspausdina neužsakyto HTML sąrašo pradinę žymą
- foreach ($ query-> result () kaip $ eilutė) {…} naudojo ciklą for, kad peržiūrėtų iš duomenų bazės grąžintus rezultatus. aidas "
- $ row-> kliento_vardas "; išspausdina kliento vardą iš duomenų bazės
Prieš įkeldami šį URL, į duomenų bazę galite įkelti dar porą įrašų.
Dabar leidžiama nustatyti užklausos SELECT maršrutą
Atidarykite „application / config / route.php“ lentelę
Pridėkite šį maršrutą
$route['ar'] = 'activerecordcontroller';
ČIA
- Maršrutas rodo į „ActiveRecordController“ klasės indekso metodą. Tai pagal nutylėjimą, todėl mes nenurodėme indekso metodo, kaip jūs nurodėte maršrute, įterpiančiame įrašus
Darant prielaidą, kad žiniatinklio serveris jau veikia, įkelkite šį URL
http: // localhost: 3000 / ar
Savo žiniatinklio naršyklėje turėtumėte matyti rezultatus, kurie labai panašūs į šiuos
„CodeIgniter“ atnaujinkite aktyvų įrašą
Šiame skyriuje kalbėsime apie tai, kaip naudoti aktyvų įrašą duomenų bazei atnaujinti. Tarkime, norime atnaujinti kliento vardą Joe Thomas į Joe.
Pridėkite šį metodą prie „ActiveRecordController“ klasės
public function update_order() {$data = ['customer_name' => 'Joe',];$this->db->where('id', 1);$this->db->update('orders', $data);echo 'order has successfully been updated';}
ČIA
- $ data = […] apibrėžia laukus ir reikšmes, kuriuos norime atnaujinti duomenų bazės lentelėje
- $ this-> db-> kur ('id', 1); nustato atnaujinimo užklausos sąlygą „where“
- $ this-> db-> update ('užsakymai', $ duomenys); sugeneruoja SQL atnaujinimo užklausą ir vykdo ją pagal mūsų duomenų bazę.
Aukščiau pateiktas kodas sukurs tokį SQL sakinį
UPDATE orders SET customer_name = 'Joe' WHERE id = 1;
Dabar atnaujinkime maršrutą.php / config / maršrutus.php
Pridėkite šį maršrutą
$route['ar/update'] = 'activerecordcontroller/update_order';
Išsaugokite pakeitimus
Įkelkite šį URL į žiniatinklio naršyklę
Dabar parodykime duomenų bazės įrašus ir pažiūrėkime, ar pakeitimai nebuvo paveikti.
Kaip matote iš aukščiau pateikto paveikslėlio, pirmasis įrašas buvo atnaujintas iš Joe Thomaso į Joe.
CodeIgniter Ištrinti aktyvų įrašą
Dabar mes ištrinsime įrašą iš duomenų bazės. Ištrinsime įrašą, kurio ID yra 3.
Pridėkite šį metodą prie „ActiveRecordController“
public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}
ČIA
- $ this-> db-> kur ('id', 1); nustato sąlygą kur
- $ this-> db-> delete ('užsakymai'); ištrina duomenų bazės eilutę užsakymų lentelėje pagal kriterijus, nustatytus naudojant sąlygą kur.
Norėdami įvykdyti pirmiau nurodytą kodą, į savo žiniatinklio naršyklę įkelkite šį URL
http: // localhost: 3000 / ar / delete
Santrauka
Šioje pamokoje sužinojote, kaip dirbti su aktyviu įrašu, norint įterpti, atnaujinti, ištrinti ir pasirinkti įrašus iš duomenų bazės. Mes dirbome su statinėmis reikšmėmis kurdami įrašus, atnaujindami ir ištrindami. Kitoje pamokoje sukursime vartotojo sąsają, kuria vartotojas galės dinamiškai kurti įrašus duomenų bazėje.