Aktivni zapis Codeigniter: Vstavi, Izberi, Posodobi, Izbriši

Kazalo:

Anonim

Podatki so kri večine aplikacij. Podatke je treba hraniti tako, da jih je mogoče nadalje analizirati, da bi dobili vpogled in olajšali poslovne odločitve. Podatki so običajno shranjeni v zbirki podatkov. Med glavnimi skrbmi pri interakciji z bazo podatkov je varnost, enostavnost dostopa in izvedbe strukturiranega poizvedbenega jezika (SQL), ki jih določa prodajalec baze podatkov.

Aktivni zapis je oblikovalski vzorec, ki olajša interakcijo z bazo podatkov na enostaven, varen in zgovoren način.

Aktivni zapis ima naslednje prednosti

  • Vstavite, posodobite in izbrišite zapise s preprostimi verigami aktivnih zapisov
  • Predloži uporabniški vnos na varen način z uporabo parametrov
  • Omogoča vam delo z več mehanizmi zbirk podatkov, kot so MySQL, SQL Server itd., Ne da bi prepisali kodo aplikacije
  • CodeIgniter uporablja gonilnike, specifične za vsak mehanizem baze podatkov v ozadju.

V tej vadnici boste izvedeli:

  • Kako uporabljati Active Record: primer
  • Konfiguracija baze podatkov CodeIgniter
  • CodeIgniter Vstavi aktivni zapis
  • CodeIgniter Izberite Active Record
  • CodeIgniter Posodobi aktivni zapis
  • CodeIgniter Izbriši aktivni zapis

Kako uporabljati Active Record: primer

V tej vadnici bomo obravnavali bazo podatkov o vajah. Imeli bomo dve tabeli, eno z naročili, drugo s podrobnostmi.

Ta vadnica predpostavlja, da imate nameščeno in delujočo bazo podatkov MySQL.

Za izdelavo baze podatkov vadnic zaženite naslednje skripte:

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;

Zgornja koda ustvari bazo podatkov z imenom ci_active_record in ustvari dve tabeli, in sicer naročila in podrobnosti_naročila. Razmerje med obema tabelama je določeno z ID-jem stolpca v vrstnem redu naročila in id_naročila v tabeli z_detajli.

Konfiguracija baze podatkov CodeIgniter

Zdaj bomo konfigurirali našo aplikacijo tako, da bo lahko komunicirala s to bazo podatkov.

Odprite konfiguracijsko datoteko baze podatkov v aplikaciji / config / database.php

poiščite naslednje vrstice v konfiguracijski datoteki

'hostname' => 'localhost','username' => '','password' => '','database' => '',

Zgornjo kodo posodobite na naslednje

'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',

Opomba: uporabniško ime in geslo boste morali zamenjati s tistimi, ki ustrezajo vaši konfiguraciji MySQL.

Poleg podrobnosti o konfiguraciji baze podatkov moramo CodeIgniterju naročiti tudi, naj ob nalaganju naloži knjižnico baze podatkov

Korak 1) Odprite naslednjo datoteko application / config / autoload.php

Korak 2) Poiščite knjižnice ključev polja $ autoload in naložite knjižnico zbirke podatkov, kot je prikazano spodaj

$autoload['libraries'] = array('database');

TUKAJ,

  • Zgornja koda naloži knjižnico zbirke podatkov, ko se aplikacija zažene

CodeIgniter Vstavi aktivni zapis

Za namene testiranja bomo ustvarili krmilnik in določili poti, ki jih bomo uporabljali za interakcijo z našo aplikacijo prek aktivnega zapisa.

Ustvarite novo datotečno aplikacijo / krmilnike / ActiveRecordController.php

V ActiveRecordController.php dodajte naslednjo kodo

 '2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}

TUKAJ,

  • $ data = […] definira podatke spremenljivke matrike, ki kot ključe matrike uporablja imena tabel baze podatkov in jim dodeli vrednosti
  • $ this-> db-> insert ('naročila', $ podatkov); pokliče metodo vstavitve knjižnice baze podatkov, kot parameter posreduje vrstni red imen tabele in spremenljivko polja $ data. Ta vrstica generira stavek SQL INSERT z uporabo matričnih tipk kot imen polj in vrednosti matrike kot vrednosti, ki jih je treba vstaviti v bazo podatkov.

Zdaj, ko smo uspešno ustvarili metodo krmilnika za aktivni zapis, bomo zdaj morali ustvariti pot, ki jo bomo poklicali za izvajanje metode krmilnika.

Zdaj odprite routes.php v aplikaciji / config / routes.php

na poti dodajte naslednjo vrstico

$route['ar/insert'] = 'activerecordcontroller/store_order';

TUKAJ,

  • Določimo pot ar / insert, ki pokliče store_order ActiveRecordController.

Zdaj zaženimo spletni strežnik, da preizkusimo našo metodo.

Zaženite naslednji ukaz, da zaženete vgrajeni strežnik za PHP

cd C:\Sites\ci-appphp -S localhost:3000

TUKAJ,

  • Zgornji brskalnik ukazov v ukazno vrstico in zaženite vgrajeni strežnik na vratih 3000.

V svoj brskalnik naložite naslednji URL

http: // localhost: 3000 / ar / insert

Dobili boste naslednje rezultate

order has successfully been created

Odprite bazo podatkov o vajah MySQL in preverite tabelo naročil

Na novo ustvarjeno vrstico boste lahko prikazali na spodnji sliki

CodeIgniter Izberite Active Record

V tem poglavju bomo videli, kako prebrati zapise, ki jih imamo v bazi podatkov, in jih prikazati v spletnem brskalniku kot neurejen seznam

V sistem ActiveRecordController dodajte naslednjo metodo

public function index() {$query = $this->db->get('orders');echo "

Orders Listing

";echo "
    ";foreach ($query->result() as $row) {echo "
  • $row->customer_name
  • ";}echo "
";}

TUKAJ,

  • $ query = $ this-> db-> get ('naročila'); zažene poizvedbo select v tabeli naročil, pri čemer izbere vsa polja
  • echo "

    Seznam naročil

    "; prikaže naslov HTML velikosti 3
  • odmev "
      "; natisne uvodno oznako za neurejeni seznam HTML
    • foreach ($ query-> rezultat () kot $ vrstica) {…} je zanko for uporabil za zanko med rezultati, vrnjenimi iz baze podatkov. echo "
    • $ row-> client_name
    • "; iz baze podatkov natisne ime stranke

    Preden naložite naslednji URL, lahko v bazo podatkov naložite še nekaj zapisov.

    Zdaj lahko določimo pot za poizvedbo SELECT

    Odprite tabelo application / config / routes.php

    Dodajte naslednjo pot

    $route['ar'] = 'activerecordcontroller';

    TUKAJ,

    • Pot usmerja na indeksno metodo razreda ActiveRecordController. To je privzeto, zato nismo določili metode indeksa kot vi za pot, ki vstavlja zapise

    Ob predpostavki, da se spletni strežnik že izvaja, naložite naslednji URL

    http: // localhost: 3000 / ar

    V vašem brskalniku bi morali videti rezultate, ki so zelo podobni naslednjim

    CodeIgniter Posodobi aktivni zapis

    V tem poglavju bomo govorili o tem, kako uporabiti aktivni zapis za posodobitev baze podatkov. Recimo, da želimo posodobiti ime stranke Joe Thomas na Joe.

    V razred ActiveRecordController dodajte naslednjo metodo

    public function update_order() {$data = ['customer_name' => 'Joe',];$this->db->where('id', 1);$this->db->update('orders', $data);echo 'order has successfully been updated';}

    TUKAJ,

    • $ data = […] definira polja in vrednosti, ki jih želimo posodobiti v tabeli zbirke podatkov
    • $ this-> db-> where ('id', 1); nastavi klavzulo where poizvedbe za posodobitev
    • $ this-> db-> update ('naročila', $ podatki); generira poizvedbo za posodobitev SQL in jo izvede proti naši bazi podatkov.

    Zgornja koda bo ustvarila naslednji stavek SQL

    UPDATE orders SET customer_name = 'Joe' WHERE id = 1;

    Posodobimo zdaj route.php application / config / routes.php

    Dodajte naslednjo pot

    $route['ar/update'] = 'activerecordcontroller/update_order';

    Shranite spremembe

    V spletni brskalnik naložite naslednji URL

    Pokažimo zdaj zapise baze podatkov in preverimo, ali so spremembe vplivale.

    Kot lahko vidite na zgornji sliki, je bil prvi zapis posodobljen z Joe Thomas na Joe.

    CodeIgniter Izbriši aktivni zapis

    Zdaj bomo zapis izbrisali iz baze podatkov. Zapis bomo izbrisali z id 3.

    V sistem ActiveRecordController dodajte naslednjo metodo

    public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}

    TUKAJ,

    • $ this-> db-> where ('id', 1); določa klavzulo where
    • $ this-> db-> delete ('naročila'); izbriše vrstico baze podatkov v tabeli naročil na podlagi meril, nastavljenih z uporabo klavzule where.

    Za izvedbo zgornje kode v naš spletni brskalnik naložite naslednji URL

    http: // localhost: 3000 / ar / delete

    Povzetek

    V tej vadnici ste se naučili delati z aktivnim zapisom za vstavljanje, posodabljanje, brisanje in izbiranje zapisov iz baze podatkov. S statičnimi vrednostmi smo delali za ustvarjanje zapisov, posodabljanje in brisanje. V naslednji vadnici bomo ustvarili uporabniški vmesnik, ki ga lahko uporabnik uporablja za dinamično ustvarjanje zapisov v zbirki podatkov.