Codeigniter Active Record: Lisää, valitse, päivitä, poista

Sisällysluettelo:

Anonim

Tiedot ovat useimpien sovellusten verilinja. Tiedot on varastoitava siten, että niitä voidaan edelleen analysoida antamaan oivalluksia ja helpottamaan liiketoimintapäätöksiä. Tiedot tallennetaan yleensä tietokantaan. Tärkeimmät huolenaiheet vuorovaikutuksessa tietokannan kanssa ovat turvallisuus, pääsyn helppous ja tietokantatoimittajakohtaiset toteutukset (SQL).

Aktiivinen tietue on suunnittelumalli, jonka avulla on helppo olla vuorovaikutuksessa tietokannan kanssa helposti, turvallisesti ja kaunopuheisesti.

Aktiivisella tietueella on seuraavat edut

  • Lisää, päivitä ja poista tietueita aktiivisen tietueen yksinkertaisilla menetelmäketjuilla
  • Lähettää käyttäjän syötteen turvallisella tavalla parametrien avulla
  • Voit työskennellä useiden tietokantamoottoreiden, kuten MySQL, SQL Server, jne. Kanssa kirjoittamatta sovelluskoodia uudelleen
  • CodeIgniter käyttää kullekin taustalla olevalle tietokantamoottorille omia ohjaimia.

Tässä opetusohjelmassa opit:

  • Kuinka käyttää aktiivista tietuetta: Esimerkki
  • CodeIgniter-tietokannan määritykset
  • CodeIgniter Lisää aktiivinen tietue
  • CodeIgniter Valitse Aktiivinen tietue
  • CodeIgniter Päivitä aktiivinen tietue
  • CodeIgniter Poista aktiivinen tietue

Kuinka käyttää aktiivista tietuetta: Esimerkki

Tässä opetusohjelmassa keskustellaan opetusohjelman tietokannasta. Meillä on kaksi pöytää, joista toisessa on tilaukset ja toisessa yksityiskohdat.

Tässä opetusohjelmassa oletetaan, että MySQL-tietokanta on asennettu ja käynnissä.

Suorita seuraavat komentosarjat luodaksesi opetusohjelmatietokannan:

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;

Yllä oleva koodi luo tietokannan nimeltä ci_active_record ja luo kaksi taulukkoa eli tilaukset ja order_details. Kahden taulukon välinen suhde määritetään sarakkeiden tunnuksella tilauksissa ja order_id tilaustietojen taulukossa.

CodeIgniter-tietokannan määritykset

Määritämme nyt sovelluksemme pystymään kommunikoimaan tämän tietokannan kanssa.

Avaa tietokannan määritystiedosto, joka sijaitsee sovelluksessa / config / database.php

etsi seuraavat rivit määritystiedostosta

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

Päivitä yllä oleva koodi seuraavaan

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

Huomaa: sinun on vaihdettava käyttäjätunnus ja salasana vastaaviksi kuin MySQL-määritykset.

Tietokannan kokoonpanotietojen lisäksi meidän on myös kerrottava CodeIgniterille lataamaan tietokantakirjasto, kun se latautuu

Vaihe 1) Avaa seuraava tiedostosovellus / config / autoload.php

Vaihe 2) Etsi $ autoload-taulukkoavainkirjastot ja lataa tietokantakirjasto alla olevan kuvan mukaisesti

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

TÄSSÄ,

  • Yllä oleva koodi lataa tietokantakirjaston sovelluksen käynnistyessä

CodeIgniter Lisää aktiivinen tietue

Testaustarkoituksiin luomme ohjaimen ja määritetyt reitit, joita käytämme vuorovaikutuksessa sovelluksemme kanssa aktiivisen tietueen kautta.

Luo uusi tiedostosovellus / ohjaimet / ActiveRecordController.php

Lisää seuraava koodi ActiveRecordController.php-tiedostoon

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

TÄSSÄ,

  • $ data = […] määrittelee taulukon muuttujatiedot, jotka käyttävät tietokantataulukoiden nimiä taulukkoavaimina ja osoittavat niille arvot
  • $ this-> db-> insert ('tilaukset', $ data); kutsuu tietokantakirjaston lisäysmenetelmän, välittää parametrina taulukon nimijärjestykset ja taulukon muuttujan $ data. Tämä rivi luo SQL INSERT -käskyn käyttämällä taulukonäppäimiä kenttien niminä ja taulukon arvoja tietokantaan lisättävinä arvoina.

Nyt kun olemme onnistuneesti luoneet ohjaimen menetelmän aktiivista tietuetta varten, meidän on nyt luotava reitti, johon kutsumme suorittamaan ohjaimen menetelmän.

Avaa nyt Routes.php sovelluksessa / config / Routes.php

lisää seuraava rivi reitteihin

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

TÄSSÄ,

  • Määritämme reitin ar / insert, joka kutsuu ActiveRecordControllerin store_order.

Aloitetaan nyt verkkopalvelin testaamaan menetelmäämme.

Käynnistä PHP: n sisäinen palvelin suorittamalla seuraava komento

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

TÄSSÄ,

  • Yllä oleva komentoselain komentoriville ja käynnistä sisäänrakennettu palvelin portista 3000.

Lataa seuraava URL-osoite selaimeesi

http: // localhost: 3000 / ar / insert

Saat seuraavat tulokset

order has successfully been created

Avaa MySQL-opetusohjelman tietokanta ja tarkista tilaustaulukko

Voit luoda uuden rivin alla olevan kuvan mukaisesti

CodeIgniter Valitse Aktiivinen tietue

Tässä osassa näemme, kuinka luemme tietokannassa olevat tietueet ja näytetään ne verkkoselaimessa järjestämättömänä luettelona

Lisää seuraava menetelmä ActiveRecordControlleriin

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

Orders Listing

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

TÄSSÄ,

  • $ query = $ this-> db-> get ('tilaukset'); suorittaa valintakyselyn tilaustaulukkoa vastaan ​​ja valitsee kaikki kentät
  • echo "

    Tilausten listaus

    "; näyttää HTML-otsikon, jonka koko on 3
  • kaiku "
      "; tulostaa avaamattoman tunnisteen järjestämättömälle HTML-luettelolle
    • foreach ($ kysely-> tulos () kuin $ -rivi) {…} käytti for-silmukkaa selatakseen tietokannasta palautettuja tuloksia. echo "
    • $ row-> asiakkaan_nimi
    • "; tulostaa asiakasnimen tietokannasta

    Ennen seuraavan URL-osoitteen lataamista voit ladata pari muuta tietuetta tietokantaan.

    Määritetään nyt reitti SELECT-kyselylle

    Avaa taulukko application / config / route.php

    Lisää seuraava reitti

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

    TÄSSÄ,

    • Reitti ar osoittaa ActiveRecordController-luokan hakemistomenetelmän. Tämän vuoksi oletusarvoisesti emme määrittäneet hakemistomenetelmää kuten teit tietueita lisäävälle reitille

    Oletetaan, että verkkopalvelin on jo käynnissä, lataa seuraava URL-osoite

    http: // localhost: 3000 / ar

    Sinun pitäisi pystyä näkemään tulokset, jotka ovat hyvin samanlaisia ​​kuin seuraavat selaimessasi

    CodeIgniter Päivitä aktiivinen tietue

    Tässä osassa kerromme, kuinka aktiivista tietuetta käytetään tietokannan päivittämiseen. Oletetaan, että haluamme päivittää asiakkaan nimen Joe Thomas nimeksi Joe.

    Lisää seuraava menetelmä ActiveRecordController-luokkaan

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

    TÄSSÄ,

    • $ data = […] määrittelee kentät ja arvot, jotka haluamme päivittää tietokantataulukossa
    • $ this-> db-> missä ('id', 1); asettaa päivityskyselyn where-lausekkeen
    • $ this-> db-> update ('tilaukset', $ data); luo SQL-päivityskyselyn ja suorittaa sen tietokantaamme vastaan.

    Yllä oleva koodi tuottaa seuraavan SQL-käskyn

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

    Päivitetään nyt Routes.php-sovellus / config / Routes.php

    Lisää seuraava reitti

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

    Tallenna muutokset

    Lataa seuraava URL-osoite verkkoselaimeen

    Näytetään nyt tietokannan tietueet ja katsotaan, onko muutoksiin vaikutusta.

    Kuten yllä olevasta kuvasta näet, ensimmäinen tietue on päivitetty Joe Thomasista Joe: ksi.

    CodeIgniter Poista aktiivinen tietue

    Poistamme nyt tietueen tietokannasta. Poistamme tietueen, jonka tunnus on 3.

    Lisää seuraava menetelmä ActiveRecordControlleriin

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

    TÄSSÄ,

    • $ this-> db-> missä ('id', 1); asettaa missä -lausekkeen
    • $ this-> db-> delete ('tilaukset'); poistaa tietokantarivin tilaustaulukosta Where-lausekkeen avulla asetettujen ehtojen perusteella.

    Suorita yllä oleva koodi lataamalla seuraava URL-osoite verkkoselaimeemme

    http: // localhost: 3000 / ar / delete

    Yhteenveto

    Tässä opetusohjelmassa olet oppinut työskentelemään aktiivisen tietueen kanssa tietueiden lisäämiseksi, päivittämiseksi, poistamiseksi ja valitsemiseksi. Teimme yhdessä staattisten arvojen kanssa tietueiden luomista, päivittämistä ja poistamista. Seuraavassa opetusohjelmassa luomme käyttöliittymän, jonka avulla käyttäjä voi luoda tietueita dynaamisesti tietokantaan.