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.