Codeigniter Active Record: Ievietot, Atlasīt, Atjaunināt, Dzēst

Satura rādītājs:

Anonim

Dati ir vairuma lietojumu galvenā līnija. Dati jāuzglabā tā, lai tos varētu tālāk analizēt, lai sniegtu ieskatu un atvieglotu biznesa lēmumus. Dati parasti tiek glabāti datu bāzē. Mijiedarbojoties ar datu bāzi, galvenās problēmas ir drošība, piekļuves vienkāršība un strukturētas vaicājumu valodas (SQL) ieviešana, izmantojot datu bāzes piegādātāju.

Aktīvais ieraksts ir noformējuma modelis, kas atvieglo ērtu, drošu un daiļrunīgu mijiedarbību ar datu bāzi.

Aktīvajam ierakstam ir šādas priekšrocības

  • Ievietojiet, atjauniniet un izdzēsiet ierakstus, izmantojot aktīvo ierakstu vienkāršas metodes
  • Iesniedz lietotāja ievadi drošā veidā, izmantojot parametrus
  • Ļauj strādāt ar vairākiem datu bāzes dzinējiem, piemēram, MySQL, SQL Server uc, nepārrakstot lietojumprogrammas kodu
  • CodeIgniter fonā izmanto katram draiverim specifiskus draiverus.

Šajā apmācībā jūs uzzināsiet:

  • Kā izmantot aktīvo ierakstu: piemērs
  • CodeIgniter datu bāzes konfigurācija
  • CodeIgniter Ievietot aktīvo ierakstu
  • CodeIgniter Atlasiet Aktīvs ieraksts
  • CodeIgniter Atjaunināt aktīvo ierakstu
  • CodeIgniter Dzēst aktīvo ierakstu

Kā izmantot aktīvo ierakstu: piemērs

Šajā apmācībā mēs apspriedīsim apmācības datu bāzi. Mums būs divas tabulas, viena ar pasūtījumiem, otra ar detaļām.

Šajā apmācībā tiek pieņemts, ka MySQL datu bāze ir instalēta un darbojas.

Lai izveidotu apmācības datu bāzi, palaidiet šādus skriptus:

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;

Iepriekš minētais kods izveido datu bāzi ar nosaukumu ci_active_record un izveido divas tabulas, proti, pasūtījumus un order_details. Attiecību starp abām tabulām nosaka kolonnas ID pasūtījumos un order_id tabulā order_details.

CodeIgniter datu bāzes konfigurācija

Tagad mēs konfigurēsim savu lietojumprogrammu, lai tā varētu sazināties ar šo datu bāzi.

Atveriet datu bāzes konfigurācijas failu, kas atrodas lietojumprogrammā / config / database.php

konfigurācijas failā atrodiet šādas rindas

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

Atjauniniet iepriekš minēto kodu uz šo

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

Piezīme: jums būs jāaizstāj lietotājvārds un parole uz tiem, kas atbilst MySQL konfigurācijai.

Papildus datu bāzes konfigurācijas detaļām mums arī jāpasaka CodeIgniter ielādēt datu bāzes bibliotēku, kad tā tiek ielādēta

1. solis. Atveriet šo faila lietojumprogrammu / config / autoload.php

2. solis. Atrodiet masīvu atslēgu bibliotēkas $ autoload un ielādējiet datu bāzes bibliotēku, kā parādīts zemāk

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

ŠEIT,

  • Iepriekš minētais kods ielādē datu bāzes bibliotēku, palaižot lietojumprogrammu

CodeIgniter Ievietot aktīvo ierakstu

Testēšanas nolūkos mēs izveidosim kontrolieri un definētus maršrutus, kurus izmantosim, lai mijiedarbotos ar mūsu lietojumprogrammu, izmantojot aktīvo ierakstu.

Izveidojiet jaunu failu lietojumprogrammu / kontrolieri / ActiveRecordController.php

Pievienojiet šo kodu vietnei ActiveRecordController.php

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

ŠEIT,

  • $ data = […] definē masīva mainīgos datus, kas datu bāzes tabulu nosaukumus izmanto kā masīva atslēgas, un piešķir tiem vērtības
  • $ this-> db-> insert ('pasūtījumi', $ dati); izsauc datu bāzes bibliotēkas ievietošanas metodi, kā parametru nodod tabulas nosaukumu secības un masīva mainīgo $ data. Šī rinda ģenerē SQL INSERT priekšrakstu, izmantojot masīva atslēgas kā lauku nosaukumus un masīva vērtības kā vērtības, kas jāievieto datu bāzē.

Tagad, kad esam veiksmīgi izveidojuši kontroliera metodi aktīvam ierakstam, mums tagad būs jāizveido maršruts, kuru mēs izsauksim, lai izpildītu kontroliera metodi.

Tagad atveriet route.php lietojumprogrammā / config / route.php

maršrutiem pievienojiet šādu rindu

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

ŠEIT,

  • Mēs definējam maršrutu ar / insert, kas izsauc ActiveRecordController store_order.

Tagad sāksim tīmekļa serveri, lai pārbaudītu mūsu metodi.

Palaidiet šo komandu, lai palaistu iebūvēto serveri PHP

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

ŠEIT,

  • Iepriekš norādīto komandu pārlūku komandrindai un palaidiet iebūvēto serveri 3000 ostā.

Ielādējiet šo URL savā pārlūkprogrammā

http: // localhost: 3000 / ar / insert

Jūs saņemsiet šādus rezultātus

order has successfully been created

Atveriet MySQL apmācības datu bāzi un pārbaudiet pasūtījumu tabulu

Jūs varēsiet jaunizveidoto rindu, kā parādīts attēlā zemāk

CodeIgniter Atlasiet Aktīvs ieraksts

Šajā sadaļā mēs redzēsim, kā nolasīt ierakstus, kas mums ir datu bāzē, un parādīt tos tīmekļa pārlūkprogrammā kā nesakārtotu sarakstu

Pievienojiet šo metodi ActiveRecordController

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

Orders Listing

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

ŠEIT,

  • $ query = $ this-> db-> get ('pasūtījumi'); izpilda atlases vaicājumu pret pasūtījumu tabulu, atlasot visus laukus
  • echo "

    Pasūtījumu saraksts

    "; parāda 3. lieluma HTML virsrakstu
  • atbalss "
      "; izdrukā neatkārtota HTML saraksta sākuma tagu
    • foreach ($ query-> result () kā $ rinda) {…} izmantoja for ciklu, lai apietu no datu bāzes atgrieztos rezultātus. atbalss "
    • $ row-> klienta_nosaukums
    • "; izdrukā klienta vārdu no datu bāzes

    Pirms šī URL ielādes datubāzē varat ielādēt vēl pāris ierakstus.

    Tagad ļauj noteikt vaicājuma SELECT maršrutu

    Atveriet lietojumprogrammu / config / route.php tabulu

    Pievienojiet šo maršrutu

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

    ŠEIT,

    • Maršruts norāda uz ActiveRecordController klases indeksēšanas metodi. Tas pēc noklusējuma ir iemesls, kāpēc mēs nenorādījām indeksa metodi, kā jūs to darījāt maršrutam, kas ievieto ierakstus

    Pieņemot, ka tīmekļa serveris jau darbojas, ielādējiet šo URL

    http: // localhost: 3000 / ar

    Jūsu tīmekļa pārlūkprogrammā jums vajadzētu būt iespējai redzēt rezultātus, kas ir ļoti līdzīgi šiem

    CodeIgniter Atjaunināt aktīvo ierakstu

    Šajā sadaļā mēs runāsim par to, kā izmantot aktīvo ierakstu, lai atjauninātu datu bāzi. Pieņemsim, ka mēs vēlamies atjaunināt klienta vārdu Džo Tomass uz Džo.

    Klasei ActiveRecordController pievienojiet šo metodi

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

    ŠEIT,

    • $ data = […] definē laukus un vērtības, kuras mēs vēlamies atjaunināt datu bāzes tabulā
    • $ this-> db-> kur ('id', 1); iestata atjaunināšanas vaicājuma klauzulu kur
    • $ this-> db-> update ('pasūtījumi', $ dati); ģenerē SQL atjaunināšanas vaicājumu un izpilda to pret mūsu datu bāzi.

    Iepriekš minētais kods radīs šādu SQL priekšrakstu

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

    Tagad atjaunināsim maršrutu.php lietojumprogrammu / config / maršruti.php

    Pievienojiet šo maršrutu

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

    Saglabājiet izmaiņas

    Ielādējiet šo URL tīmekļa pārlūkprogrammā

    Tagad parādīsim datu bāzes ierakstus un redzēsim, vai izmaiņas nav ietekmētas.

    Kā redzat no iepriekš minētā attēla, pirmais ieraksts ir atjaunināts no Džo Tomasa uz Džo.

    CodeIgniter Dzēst aktīvo ierakstu

    Tagad mēs izdzēsīsim ierakstu no datu bāzes. Mēs izdzēsīsim ierakstu ar ID 3.

    Pievienojiet šo metodi ActiveRecordController

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

    ŠEIT,

    • $ this-> db-> kur ('id', 1); nosaka kur klauzulu
    • $ this-> db-> delete ('pasūtījumi'); izdzēš datu bāzes rindu pasūtījumu tabulā, pamatojoties uz kritērijiem, kas noteikti, izmantojot klauzulu kur.

    Lai izpildītu iepriekš minēto kodu, ielādējiet šo URL mūsu tīmekļa pārlūkprogrammā

    http: // localhost: 3000 / ar / delete

    Kopsavilkums

    Šajā apmācībā esat iemācījies strādāt ar aktīvu ierakstu, lai ievietotu, atjauninātu, dzēstu un atlasītu ierakstus no datu bāzes. Mēs strādājām ar statiskām vērtībām, lai izveidotu ierakstus, atjauninātu un dzēstu. Nākamajā apmācībā mēs izveidosim lietotāja saskarni, kuru lietotājs var izmantot, lai datu bāzē dinamiski izveidotu ierakstus.