Az adatok jelentik a legtöbb alkalmazás vérvonalát. Az adatokat úgy kell tárolni, hogy tovább elemezhessék, hogy betekintést nyerjenek és megkönnyítsék az üzleti döntéseket. Az adatokat általában az adatbázisban tárolják. Az adatbázissal való kapcsolattartás során a legfőbb gondok közé tartozik a biztonság, a könnyű hozzáférés és az adatbázis-gyártók által megvalósított strukturált lekérdezési nyelv (SQL) megvalósításai.
Az Aktív rekord olyan tervezési minta, amely megkönnyíti az adatbázissal való egyszerű, biztonságos és beszédes interakciót.
Az aktív rekordnak a következő előnyei vannak
- Rekordok beszúrása, frissítése és törlése az aktív rekord egyszerű módszerláncával
- Biztonságosan adja meg a felhasználói adatbevitelt paraméterek felhasználásával
- Lehetővé teszi, hogy több adatbázis-motorral, például MySQL, SQL Server stb. Dolgozzon anélkül, hogy újraírná az alkalmazás kódját
- A CodeIgniter a háttérben minden egyes adatbázis-motorhoz speciális illesztőprogramokat használ.
Ebben az oktatóanyagban megtudhatja:
- Az Active Record használata: Példa
- CodeIgniter adatbázis-konfiguráció
- CodeIgniter Aktív rekord beszúrása
- CodeIgniter Válassza az Aktív rekord lehetőséget
- CodeIgniter Aktív rekord frissítése
- CodeIgniter Aktív rekord törlése
Az Active Record használata: Példa
Ebben az oktatóanyagban megvitatjuk az oktatóanyag-adatbázist. Két asztalunk lesz, az egyik megrendeléssel, a másik részletekkel.
Ez az oktatóanyag feltételezi, hogy a MySQL adatbázis telepítve van és fut.
Futtassa a következő parancsfájlokat oktató adatbázis létrehozásához:
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;
A fenti kód létrehoz egy ci_active_record nevű adatbázist, és két táblát hoz létre, nevezetesen megrendeléseket és order_details. A két tábla közötti kapcsolatot a megrendelések oszlopazonosítója és a rendelési_adatok táblában szereplő order_id határozza meg.
CodeIgniter adatbázis-konfiguráció
Most úgy konfiguráljuk az alkalmazásunkat, hogy képes legyen kommunikálni ezzel az adatbázissal.
Nyissa meg az application / config / database.php fájlban található adatbázis-konfigurációs fájlt
keresse meg a következő sorokat a konfigurációs fájlban
'hostname' => 'localhost','username' => '','password' => '','database' => '',
Frissítse a fenti kódot a következőre
'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',
Megjegyzés: ki kell cserélnie a felhasználónevet és a jelszót azokra, amelyek megfelelnek a MySQL konfigurációjának.
Az adatbázis-konfigurációs részletek mellett azt is meg kell mondanunk a CodeIgniternek, hogy betöltésekor töltse be az adatbázis-könyvtárat
1. lépés: Nyissa meg a következő fájlalkalmazást: config / autoload.php
2. lépés: Keresse meg a $ autoload tömb kulcs könyvtárakat, és töltse be az adatbázis könyvtárat az alábbiak szerint
$autoload['libraries'] = array('database');
ITT,
- A fenti kód az alkalmazás indításakor tölti be az adatbázis-könyvtárat
CodeIgniter Aktív rekord beszúrása
Tesztelés céljából létrehozunk egy vezérlőt és meghatározott útvonalakat, amelyeket aktív rekordon keresztül fogunk kölcsönhatásba lépni alkalmazásunkkal.
Hozzon létre egy új fájlalkalmazást / controllers / ActiveRecordController.php
Adja hozzá a következő kódot az ActiveRecordController.php fájlhoz
'2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}
ITT,
- Az $ data = […] meghatároz egy tömbváltozó adatot, amely az adatbázis táblák nevét használja tömb kulcsként, és értékeket rendel hozzájuk
- $ this-> db-> insert ('megrendelések', $ data); meghívja az adatbázis-könyvtár beszúrási metódusát, paraméterként a táblázatnév-sorrendeket és a $ data tömb változót adja át. Ez a sor állítja elő az SQL INSERT utasítást a tömbkulcsok mezőnévként, a tömbértékek pedig az adatbázisba beillesztendő értékek felhasználásával.
Most, hogy sikeresen létrehoztuk a vezérlő metódust az aktív nyilvántartáshoz, létre kell hoznunk egy útvonalat, amelyet a vezérlő metódus végrehajtásához hívunk.
Most nyissa meg az route.php fájlt az application / config / route.php fájlban
adja hozzá a következő sort az útvonalakhoz
$route['ar/insert'] = 'activerecordcontroller/store_order';
ITT,
- Meghatározunk egy ar / insert útvonalat, amely meghívja az ActiveRecordController store_order elemét.
Indítsuk el most a webszervert a módszer teszteléséhez.
Futtassa az alábbi parancsot a PHP beépített kiszolgálójának elindításához
cd C:\Sites\ci-appphp -S localhost:3000
ITT,
- A fenti parancsböngésző a parancssorba, és indítsa el a beépített szervert a 3000-es porton.
Töltse be a következő URL-t a böngészőbe
http: // localhost: 3000 / ar / insert
A következő eredményeket kapja
order has successfully been created
Nyissa meg a MySQL oktató adatbázisát, és ellenőrizze a megrendelések táblázatot
Képes lesz újonnan létrehozott sorra, az alábbi képen látható módon
CodeIgniter Válassza az Aktív rekord lehetőséget
Ebben a szakaszban megtudhatjuk, hogyan olvassuk el az adatbázisban lévő rekordokat, és hogyan jelenítsük meg azokat a webböngészőben rendezetlen listaként
Adja hozzá a következő módszert az ActiveRecordControllerhez
public function index() {$query = $this->db->get('orders');echo "Orders Listing
";echo "
- ";foreach ($query->result() as $row) {echo "
- $row->customer_name ";}echo "
ITT,
- $ query = $ this-> db-> get ('megrendelések'); futtatja a select lekérdezést az összes mezőt kijelölő megrendelések táblához képest
- echo "
Rendelések listázása
"; 3. méretű HTML-címsort jelenít meg - visszhang "
- "; kinyomtatja a rendezetlen HTML lista nyitó címkét
- A foreach ($ query-> result () mint $ sor) {…} a for ciklust használta az adatbázisból visszaküldött eredmények végigvezetéséhez. echo "
- $ row-> ügyfél_neve "; kinyomtatja az ügyfél_nevet az adatbázisból
A következő URL betöltése előtt még néhány rekordot betölthet az adatbázisba.
Most megadhat egy útvonalat a SELECT lekérdezéshez
Nyissa meg az application / config / route.php táblázatot
Adja hozzá a következő útvonalat
$route['ar'] = 'activerecordcontroller';
ITT,
- Az útvonal az ActiveRecordController osztály index metódusára mutat. Alapértelmezésben ezért nem határoztuk meg az index metódust, mint ahogy azt a rekordokat beszúró útvonalhoz tette
Feltéve, hogy a webszerver már fut, töltse be a következő URL-t
http: // localhost: 3000 / ar
Látnia kell az eredményeket, amelyek nagyon hasonlítanak a böngészőben az alábbiakhoz
CodeIgniter Aktív rekord frissítése
Ebben a szakaszban arról lesz szó, hogyan lehet az aktív rekordot az adatbázis frissítésére használni. Tegyük fel, hogy frissíteni akarjuk a Joe Thomas ügyfélnevet Joe-ra.
Adja hozzá a következő módszert az ActiveRecordController osztályhoz
public function update_order() {$data = ['customer_name' => 'Joe',];$this->db->where('id', 1);$this->db->update('orders', $data);echo 'order has successfully been updated';}
ITT,
- Az $ data = […] meghatározza azokat a mezőket és értékeket, amelyeket frissíteni kívánunk az adatbázis-táblában
- $ this-> db-> hol ('id', 1); beállítja a frissítési lekérdezés hol záradékát
- $ this-> db-> update ('megrendelések', $ data); generálja az SQL frissítési lekérdezést és végrehajtja az adatbázisunkkal szemben.
A fenti kód a következő SQL utasítást hozza létre
UPDATE orders SET customer_name = 'Joe' WHERE id = 1;
Frissítsük most az route.php alkalmazást / config / route.php
Adja hozzá a következő útvonalat
$route['ar/update'] = 'activerecordcontroller/update_order';
Mentse a módosításokat
Töltse be a következő URL-t a webböngészőbe
Most jelenítsük meg az adatbázis rekordokat, és nézzük meg, hogy a változások érintettek-e.
Amint a fenti képből látható, az első rekordot Joe Thomasról Joe-ra frissítették.
CodeIgniter Aktív rekord törlése
Most törölünk egy rekordot az adatbázisból. Töröljük a 3 azonosítójú rekordot.
Adja hozzá a következő módszert az ActiveRecordControllerhez
public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}
ITT,
- $ this-> db-> hol ('id', 1); megadja a hol záradékot
- $ this-> db-> delete ('megrendelések'); törli az adatbázis sort a megrendelések táblázatban a where záradék segítségével beállított kritériumok alapján.
A fenti kód végrehajtásához töltse be a következő URL-t webböngészőnkbe
http: // localhost: 3000 / ar / delete
Összegzés
Ebben az oktatóanyagban megtanulta, hogyan kell aktív rekordokkal dolgozni a rekordok beillesztésében, frissítésében, törlésében és az adatbázisból történő kiválasztásában. Statikus értékekkel dolgoztunk rekordok létrehozásában, frissítésében és törlésében. A következő oktatóanyagban létrehozunk egy felhasználói felületet, amely segítségével a felhasználó dinamikusan hozhat létre rekordokat az adatbázisban.