Codeigniter Active Record: Beszúrás, Kiválasztás, Frissítés, Törlés

Tartalomjegyzék:

Anonim

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.