Codeigniter Active Record: Einfügen, Auswählen, Aktualisieren, Löschen

Inhaltsverzeichnis:

Anonim

Daten sind die Blutlinie der meisten Anwendungen. Die Daten müssen so gespeichert werden, dass sie weiter analysiert werden können, um Erkenntnisse zu liefern und Geschäftsentscheidungen zu erleichtern. Die Daten werden normalerweise in der Datenbank gespeichert. Zu den Hauptanliegen bei der Interaktion mit der Datenbank zählen Sicherheit, einfacher Zugriff und herstellerspezifische Implementierungen von SQL (Structured Query Language).

Active Record ist ein Entwurfsmuster, mit dem die Interaktion mit der Datenbank auf einfache, sichere und beredte Weise vereinfacht wird.

Der aktive Datensatz bietet die folgenden Vorteile

  • Einfügen, Aktualisieren und Löschen von Datensätzen mit einfachen Methodenketten aktiver Datensätze
  • Sendet die Benutzereingaben auf sichere Weise mithilfe von Parametern
  • Ermöglicht die Arbeit mit mehreren Datenbankmodulen wie MySQL, SQL Server usw., ohne den Anwendungscode neu zu schreiben
  • CodeIgniter verwendet im Hintergrund für jedes Datenbankmodul spezifische Treiber.

In diesem Tutorial lernen Sie:

  • Verwendung von Active Record: Beispiel
  • CodeIgniter-Datenbankkonfiguration
  • CodeIgniter Aktiven Datensatz einfügen
  • CodeIgniter Wählen Sie Active Record
  • CodeIgniter Active Record aktualisieren
  • CodeIgniter Aktiven Datensatz löschen

Verwendung von Active Record: Beispiel

In diesem Tutorial werden wir die Tutorial-Datenbank diskutieren. Wir werden zwei Tische haben, einen mit Bestellungen, den anderen mit Details.

In diesem Tutorial wird davon ausgegangen, dass Sie die MySQL-Datenbank installiert und ausgeführt haben.

Führen Sie die folgenden Skripts aus, um eine Lernprogrammdatenbank zu erstellen:

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;

Der obige Code erstellt eine Datenbank mit dem Namen ci_active_record und erstellt zwei Tabellen, nämlich orders und order_details. Die Beziehung zwischen den beiden Tabellen wird durch die Spalten-ID in Bestellungen und die Bestell-ID in der Tabelle "Bestelldetails" definiert.

CodeIgniter-Datenbankkonfiguration

Wir werden nun unsere Anwendung so konfigurieren, dass sie mit dieser Datenbank kommunizieren kann.

Öffnen Sie die Datenbankkonfigurationsdatei in application / config / database.php

Suchen Sie die folgenden Zeilen in der Konfigurationsdatei

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

Aktualisieren Sie den obigen Code wie folgt

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

Hinweis: Sie müssen den Benutzernamen und das Kennwort durch diejenigen ersetzen, die Ihrer Konfiguration von MySQL entsprechen.

Zusätzlich zu den Details zur Datenbankkonfiguration müssen wir CodeIgniter anweisen, die Datenbankbibliothek beim Laden zu laden

Schritt 1) Öffnen Sie die folgende Datei application / config / autoload.php

Schritt 2) Suchen Sie die Array-Schlüsselbibliotheken $ autoload und laden Sie die Datenbankbibliothek wie unten gezeigt

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

HIER,

  • Der obige Code lädt die Datenbankbibliothek beim Start der Anwendung

CodeIgniter Aktiven Datensatz einfügen

Zu Testzwecken erstellen wir einen Controller und definierte Routen, die wir verwenden, um über einen aktiven Datensatz mit unserer Anwendung zu interagieren.

Erstellen Sie eine neue Datei application / controller / ActiveRecordController.php

Fügen Sie ActiveRecordController.php den folgenden Code hinzu

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

HIER,

  • $ data = […] definiert Array-Variablendaten, die Datenbanktabellennamen als Array-Schlüssel verwenden und ihnen Werte zuweisen
  • $ this-> db-> insert ('Bestellungen', $ Daten); Ruft die Einfügemethode der Datenbankbibliothek auf, übergibt die Tabellennamenreihenfolgen und die Arrayvariable $ data als Parameter. Diese Zeile generiert die SQL INSERT-Anweisung unter Verwendung der Array-Schlüssel als Feldnamen und der Array-Werte als Werte, die in die Datenbank eingefügt werden sollen.

Nachdem wir die Controller-Methode für den aktiven Datensatz erfolgreich erstellt haben, müssen wir nun eine Route erstellen, die wir aufrufen, um die Controller-Methode auszuführen.

Öffnen Sie nun route.php in application / config / route.php

Fügen Sie den Routen die folgende Zeile hinzu

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

HIER,

  • Wir definieren eine Route ar / insert, die den store_order des ActiveRecordController aufruft.

Starten wir nun den Webserver, um unsere Methode zu testen.

Führen Sie den folgenden Befehl aus, um den integrierten Server für PHP zu starten

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

HIER,

  • Rufen Sie den obigen Befehlsbrowser zur Befehlszeile auf und starten Sie den eingebauten Server an Port 3000.

Laden Sie die folgende URL in Ihren Browser

http: // localhost: 3000 / ar / insert

Sie erhalten die folgenden Ergebnisse

order has successfully been created

Öffnen Sie die MySQL-Lernprogrammdatenbank und überprüfen Sie die Auftragstabelle

Sie können eine neu erstellte Zeile erstellen, wie in der Abbildung unten gezeigt

CodeIgniter Wählen Sie Active Record

In diesem Abschnitt erfahren Sie, wie Sie die in der Datenbank vorhandenen Datensätze lesen und im Webbrowser als ungeordnete Liste anzeigen

Fügen Sie dem ActiveRecordController die folgende Methode hinzu

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

Orders Listing

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

HIER,

  • $ query = $ this-> db-> get ('orders'); führt die Auswahlabfrage für die Auftragstabelle aus und wählt alle Felder aus
  • echo "

    Auftragsliste "; Zeigt eine HTML-Überschrift der Größe 3 an

  • Echo "
      "; druckt das Eröffnungs-Tag für die ungeordnete HTML-Liste
    • foreach ($ query-> result () als $ row) {…} verwendete die for-Schleife, um die von der Datenbank zurückgegebenen Ergebnisse zu durchlaufen. echo "
    • $ row-> customer_name "; druckt den Kundennamen aus der Datenbank

    Bevor Sie die folgende URL laden, können Sie einige weitere Datensätze in die Datenbank laden.

    Definieren wir nun eine Route für die SELECT-Abfrage

    Öffnen Sie die Tabelle application / config / route.php

    Fügen Sie die folgende Route hinzu

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

    HIER,

    • Die Route ar zeigt auf die Indexmethode der ActiveRecordController-Klasse. Aus diesem Grund haben wir die Indexmethode nicht wie für die Route zum Einfügen von Datensätzen angegeben

    Angenommen, der Webserver wird bereits ausgeführt, laden Sie die folgende URL

    http: // localhost: 3000 / ar

    Sie sollten in Ihrem Webbrowser Ergebnisse sehen können, die den folgenden sehr ähnlich sind

    CodeIgniter Active Record aktualisieren

    In diesem Abschnitt erfahren Sie, wie Sie den aktiven Datensatz zum Aktualisieren der Datenbank verwenden. Angenommen, wir möchten den Kundennamen Joe Thomas auf Joe aktualisieren.

    Fügen Sie der ActiveRecordController-Klasse die folgende Methode hinzu

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

    HIER,

    • $ data = […] definiert die Felder und Werte, die in der Datenbanktabelle aktualisiert werden sollen
    • $ this-> db-> where ('id', 1); Legt die where-Klausel der Aktualisierungsabfrage fest
    • $ this-> db-> update ('Bestellungen', $ Daten); generiert die SQL-Update-Abfrage und führt sie für unsere Datenbank aus.

    Der obige Code erzeugt die folgende SQL-Anweisung

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

    Lassen Sie uns nun die Datei route.php / config / route.php aktualisieren

    Fügen Sie die folgende Route hinzu

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

    Speichern Sie die Änderungen

    Laden Sie die folgende URL in den Webbrowser

    Lassen Sie uns nun die Datenbankeinträge anzeigen und prüfen, ob die Änderungen betroffen sind.

    Wie Sie dem oben angegebenen Bild entnehmen können, wurde der erste Datensatz von Joe Thomas auf Joe aktualisiert.

    CodeIgniter Aktiven Datensatz löschen

    Wir werden jetzt einen Datensatz aus der Datenbank löschen. Wir werden den Datensatz mit der ID 3 löschen.

    Fügen Sie dem ActiveRecordController die folgende Methode hinzu

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

    HIER,

    • $ this-> db-> where ('id', 1); setzt die where-Klausel
    • $ this-> db-> delete ('Bestellungen'); Löscht die Datenbankzeile in der Auftragstabelle basierend auf den Kriterien, die mit der where-Klausel festgelegt wurden.

    Laden Sie die folgende URL in unseren Webbrowser, um den obigen Code auszuführen

    http: // localhost: 3000 / ar / delete

    Zusammenfassung

    In diesem Lernprogramm haben Sie gelernt, wie Sie mit einem aktiven Datensatz arbeiten, um Datensätze aus der Datenbank einzufügen, zu aktualisieren, zu löschen und auszuwählen. Wir haben mit statischen Werten gearbeitet, um Datensätze zu erstellen, zu aktualisieren und zu löschen. Im nächsten Tutorial erstellen wir eine Benutzeroberfläche, mit der der Benutzer Datensätze dynamisch in der Datenbank erstellen kann.