Codeigniter Active Record: sisestamine, valimine, värskendamine, kustutamine

Lang L: none (table-of-contents):

Anonim

Andmed on enamiku rakenduste vererõhk. Andmeid tuleb säilitada nii, et neid saaks edasi analüüsida, et anda ülevaadet ja hõlbustada äriotsuseid. Andmed salvestatakse tavaliselt andmebaasi. Andmebaasiga suhtlemisel on peamisteks probleemideks turvalisus, juurdepääsetavuse lihtsus ja struktureeritud päringukeele (SQL) andmebaaside tarnijate konkreetsed rakendused.

Aktiivne kirje on kujundusmuster, mis hõlbustab andmebaasiga suhtlemist hõlpsalt, turvaliselt ja kõnekalt.

Aktiivsel plaadil on järgmised eelised

  • Kirjeid saab lisada, värskendada ja kustutada aktiivse kirje lihtsa meetodi ahelate abil
  • Esitab kasutaja sisendi parameetrite abil turvalisel viisil
  • Võimaldab töötada mitme andmebaasimootoriga, nagu MySQL, SQL Server jne, rakenduskoodi ümber kirjutamata
  • CodeIgniter kasutab taustal iga andmebaasimootori jaoks konkreetseid draivereid.

Selles õpetuses saate teada:

  • Kuidas kasutada aktiivset kirjet: näide
  • CodeIgniteri andmebaasi seadistamine
  • CodeIgniter Sisesta aktiivne kirje
  • CodeIgniter Valige Aktiivne kirje
  • CodeIgniter Aktiivse kirje värskendamine
  • CodeIgniter Kustuta aktiivne kirje

Kuidas kasutada aktiivset kirjet: näide

Selles õpetuses käsitleme õpetuste andmebaasi. Meil on kaks lauda, ​​üks tellimustega, teine ​​detailidega.

Selles õpetuses eeldatakse, et MySQL-i andmebaas on installitud ja töötab.

Õpetuse andmebaasi loomiseks käivitage järgmised skriptid:

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;

Ülaltoodud kood loob andmebaasi nimega ci_active_record ja kaks tabelit, nimelt tellimused ja order_details. Kahe tabeli suhe on määratletud tellimuste veeru id ja tabeli order_details järjekorra ID abil.

CodeIgniteri andmebaasi seadistamine

Nüüd konfigureerime oma rakenduse selle andmebaasiga suhtlemiseks.

Ava andmebaasi konfiguratsioonifail, mis asub rakenduses / config / database.php

leidke konfiguratsioonifailist järgmised read

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

Uuendage ülaltoodud kood järgmisele

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

Märkus: peate kasutajanime ja parooli asendama nendega, mis vastavad teie MySQL-i konfiguratsioonile.

Lisaks andmebaasi seadistamise üksikasjadele peame ka CodeIgniterile käskima andmebaasi teegi laadimise ajal laadida

Samm 1) Avage järgmine failirakendus / config / autoload.php

Samm 2) Leidke massiivi $ autoload võtmekogud ja laadige andmebaasi teek, nagu allpool näidatud

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

SIIN,

  • Ülaltoodud kood laadib andmebaasi teegi rakenduse käivitamisel

CodeIgniter Sisesta aktiivne kirje

Testimiseks loome kontrolleri ja määratletud marsruudid, mida kasutame oma rakendusega suhtlemiseks aktiivse kirje kaudu.

Looge uus failirakendus / kontrollerid / ActiveRecordController.php

Lisage järgmine kood saidile ActiveRecordController.php

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

SIIN,

  • $ data = […] määratleb massiivi muutuja andmed, mis kasutavad andmebaasitabelite nimesid massiivvõtmetena ja määravad neile väärtused
  • $ this-> db-> insert ('tellimused', $ andmed); kutsub andmebaasi teegi sisestusmeetodit, edastab parameetrina tabeli nime järjekorrad ja massiivi muutuja $ data. See rida genereerib käsu SQL INSERT, kasutades väljade nimedena massiiviklahve ja andmebaasi sisestatavate väärtustena massiivi väärtusi.

Nüüd, kui oleme aktiivse kirje jaoks kontrolleri meetodi edukalt loonud, peame nüüd looma marsruudi, millele helistame kontrolleri meetodi käivitamiseks.

Nüüd avage Routes.php rakenduses / config / Routes.php

lisage marsruutidele järgmine rida

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

SIIN,

  • Määratleme marsruudi ar / insert, mis kutsub ActiveRecordControlleri poe_korraldus.

Alustame nüüd veebiserverit, et oma meetodit testida.

PHP sisseehitatud serveri käivitamiseks käivitage järgmine käsk

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

SIIN,

  • Ülaltoodud käsusirvija käsureale ja käivitage sisseehitatud server pordist 3000.

Laadige järgmine URL oma brauserisse

http: // localhost: 3000 / ar / insert

Saad järgmised tulemused

order has successfully been created

Avage MySQLi õpetuste andmebaas ja kontrollige tellimuste tabelit

Saate vastloodud rida, nagu on näidatud alloleval pildil

CodeIgniter Valige Aktiivne kirje

Selles jaotises näeme, kuidas lugeda andmebaasis olevaid kirjeid ja kuvada neid veebibrauseris korrastamata loendina

Lisage järgmine meetod ActiveRecordControllerisse

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

Orders Listing

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

SIIN,

  • $ query = $ this-> db-> get ('tellimused'); käivitab valitud päringu tellimuste tabeli vastu, valides kõik väljad
  • echo "

    Tellimuste loetelu

    "; kuvab HTML-i pealkirja suurus 3
  • kaja "
      "; prindib järjestamata HTML-loendi avamissildi
    • foreach ($ query-> result () kui rida $) {…} kasutas andmebaasi tagastatud tulemuste vaatamiseks silmusfoorumit for. kaja "
    • $ rida-> kliendi_nimi
    • "; prindib andmebaasist kliendi_nime

    Enne järgmise URL-i laadimist saate andmebaasi laadida veel paar kirjet.

    Võimaldab nüüd määratleda SELECT päringu marsruudi

    Avage rakendus / config / route.php tabel

    Lisage järgmine marsruut

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

    SIIN,

    • Marsruut viitab ActiveRecordControlleri klassi indeksmeetodile. See on vaikimisi, mistõttu me ei määranud registrimeetodit, nagu te tegite marsruuti, mis sisestab kirjeid

    Eeldades, et veebiserver juba töötab, laadige järgmine URL

    http: // localhost: 3000 / ar

    Peaksite oma veebibrauseris nägema tulemusi, mis on väga sarnased järgmistega

    CodeIgniter Aktiivse kirje värskendamine

    Selles jaotises räägime sellest, kuidas aktiivset kirjet andmebaasi värskendamiseks kasutada. Oletame, et soovime uuendada kliendinime Joe Thomas nimeks Joe.

    Klassile ActiveRecordController lisage järgmine meetod

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

    SIIN,

    • $ data = […] määratleb väljad ja väärtused, mida soovime andmebaasitabelis värskendada
    • $ this-> db-> kus ('id', 1); määrab värskenduspäringu klausli kus
    • $ this-> db-> update ('tellimused', $ andmed); genereerib SQL-i värskenduspäringu ja täidab selle meie andmebaasi vastu.

    Ülaltoodud kood loob järgmise SQL-lause

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

    Uuendame nüüd marsruuti Routes.php / config / Routes.php

    Lisage järgmine marsruut

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

    Salvestage muudatused

    Laadige järgmine URL veebibrauserisse

    Kuvame nüüd andmebaasi kirjed ja vaatame, kas muudatusi on mõjutatud.

    Nagu ülaltoodud pildilt näha, on esimene kirje uuendatud Joe Thomaselt Joele.

    CodeIgniter Kustuta aktiivne kirje

    Kustutame nüüd andmebaasist kirje. Kustutame kirje ID-ga 3.

    Lisage järgmine meetod ActiveRecordControllerisse

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

    SIIN,

    • $ this-> db-> kus ('id', 1); määrab klausli kus
    • $ this-> db-> delete ('tellimused'); kustutab andmebaasi rida tellimuste tabelis lähtekoha abil määratud kriteeriumide alusel.

    Ülaltoodud koodi käivitamiseks laadige järgmine URL meie veebibrauserisse

    http: // localhost: 3000 / ar / delete

    Kokkuvõte

    Selles õpetuses olete õppinud, kuidas töötada aktiivse kirjega andmebaasi kirjete sisestamiseks, värskendamiseks, kustutamiseks ja valimiseks. Töötasime staatiliste väärtustega kirjete loomisel, värskendamisel ja kustutamisel. Järgmises õpetuses loome kasutajaliidese, mida kasutaja saab andmebaasis dünaamiliselt kirjete loomiseks kasutada.