„Codeigniter“ aktyvus įrašas: įterpti, pasirinkti, atnaujinti, ištrinti

Turinys:

Anonim

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.