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.