Codeigniter Active Record: Inserisci, Seleziona, Aggiorna, Elimina

Sommario:

Anonim

I dati sono la linea di sangue della maggior parte delle applicazioni. I dati devono essere archiviati in modo tale da poter essere ulteriormente analizzati per fornire approfondimenti e facilitare le decisioni aziendali. I dati vengono solitamente archiviati nel database. Tra le principali preoccupazioni quando si interagisce con il database vi sono la sicurezza, la facilità di accesso e le implementazioni specifiche del fornitore di database di Structured Query Language (SQL).

Active record è un modello di progettazione che semplifica l'interazione con il database in modo semplice, sicuro ed eloquente.

Il record attivo presenta i seguenti vantaggi

  • Inserisci, aggiorna ed elimina i record con semplici catene di metodi di record attivi
  • Invia l'input dell'utente in modo sicuro utilizzando i parametri
  • Consente di lavorare con più motori di database come MySQL, SQL Server, ecc. Senza riscrivere il codice dell'applicazione
  • CodeIgniter utilizza driver specifici per ogni motore di database in background.

In questo tutorial imparerai:

  • Come utilizzare Active Record: esempio
  • Configurazione del database CodeIgniter
  • CodeIgniter Inserisci record attivo
  • CodeIgniter Seleziona record attivo
  • CodeIgniter Aggiorna record attivo
  • CodeIgniter Elimina record attivo

Come utilizzare Active Record: esempio

In questo tutorial, discuteremo del database del tutorial. Avremo due tabelle, una con gli ordini e l'altra con i dettagli.

Questo tutorial presuppone che il database MySQL sia installato e funzionante.

Esegui i seguenti script per creare il database del tutorial:

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;

Il codice precedente crea un database denominato ci_active_record e crea due tabelle, ovvero orders e order_details. La relazione tra le due tabelle è definita dall'id della colonna in orders e order_id nella tabella order_details.

Configurazione del database CodeIgniter

Configureremo ora la nostra applicazione per poter comunicare con questo database.

Apri il file di configurazione del database che si trova in application / config / database.php

individuare le seguenti righe nel file di configurazione

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

Aggiorna il codice sopra come segue

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

Nota: dovrai sostituire il nome utente e la password con quelli che corrispondono alla tua configurazione di MySQL.

Oltre ai dettagli di configurazione del database, dobbiamo anche dire a CodeIgniter di caricare la libreria del database quando viene caricata

Passaggio 1) Apri il seguente file application / config / autoload.php

Passaggio 2) Individuare le librerie di chiavi dell'array $ autoload e caricare la libreria del database come mostrato di seguito

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

QUI,

  • Il codice precedente carica la libreria del database all'avvio dell'applicazione

CodeIgniter Inserisci record attivo

A scopo di test, creeremo un controller e percorsi definiti che utilizzeremo per interagire con la nostra applicazione tramite record attivo.

Crea un nuovo file application / controllers / ActiveRecordController.php

Aggiungi il codice seguente a ActiveRecordController.php

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

QUI,

  • $ data = […] definisce un dato variabile di matrice che utilizza i nomi delle tabelle del database come chiavi di matrice e assegna loro dei valori
  • $ this-> db-> insert ('orders', $ data); chiama il metodo di inserimento della libreria del database, passa gli ordini dei nomi della tabella e la variabile di matrice $ data come parametro. Questa riga genera l'istruzione SQL INSERT utilizzando le chiavi della matrice come nomi di campo e i valori della matrice come valori da inserire nel database.

Ora che abbiamo creato con successo il metodo del controller per il record attivo, avremo ora bisogno di creare una rotta che chiameremo per eseguire il metodo del controller.

Ora apri route.php in application / config / routes.php

aggiungere la seguente riga alle rotte

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

QUI,

  • Definiamo una route ar / insert che chiama store_order di ActiveRecordController.

Avviamo ora il server web per testare il nostro metodo.

Esegui il seguente comando per avviare il server integrato per PHP

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

QUI,

  • Il browser dei comandi sopra alla riga di comando e avvia il server integrato sulla porta 3000.

Carica il seguente URL nel tuo browser

http: // localhost: 3000 / ar / insert

Otterrai i seguenti risultati

order has successfully been created

Apri il database del tutorial MySQL e controlla la tabella degli ordini

Sarai in grado di creare una nuova riga come mostrato nell'immagine qui sotto

CodeIgniter Seleziona record attivo

In questa sezione vedremo come leggere i record che abbiamo nel database e visualizzarli nel browser web come un elenco non ordinato

Aggiungi il metodo seguente a ActiveRecordController

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

Orders Listing

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

QUI,

  • $ query = $ this-> db-> get ('orders'); esegue la query di selezione sulla tabella degli ordini selezionando tutti i campi
  • echo "

    Elenco ordini

    "; mostra un'intestazione HTML di dimensione 3
  • echo "
      "; stampa il tag di apertura per l'elenco HTML non ordinato
    • foreach ($ query-> result () as $ row) {…} ha utilizzato il ciclo for per scorrere i risultati restituiti dal database. echo "
    • $ row-> customer_name
    • "; stampa il nome_cliente dal database

    Prima di caricare il seguente URL, puoi caricare un altro paio di record nel database.

    Definiamo ora un percorso per la query SELECT

    Apri la tabella application / config / routes.php

    Aggiungi il seguente percorso

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

    QUI,

    • La route ar punta al metodo index della classe ActiveRecordController. Questo è per impostazione predefinita, ecco perché non abbiamo specificato il metodo dell'indice come hai fatto per la rotta che inserisce i record

    Supponendo che il server web sia già in esecuzione, carica il seguente URL

    http: // localhost: 3000 / ar

    Dovresti essere in grado di vedere risultati molto simili ai seguenti nel tuo browser web

    CodeIgniter Aggiorna record attivo

    In questa sezione parleremo di come utilizzare il record attivo per aggiornare il database. Supponiamo di voler aggiornare il nome del cliente Joe Thomas a Joe.

    Aggiungere il metodo seguente alla classe ActiveRecordController

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

    QUI,

    • $ data = […] definisce i campi e i valori che desideriamo aggiornare nella tabella del database
    • $ questo-> db-> dove ('id', 1); imposta la clausola where della query di aggiornamento
    • $ this-> db-> update ('orders', $ data); genera la query di aggiornamento SQL e la esegue sul nostro database.

    Il codice precedente produrrà la seguente istruzione SQL

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

    Aggiorniamo ora l'applicazione route.php / config / routes.php

    Aggiungi il seguente percorso

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

    Salva le modifiche

    Carica il seguente URL nel browser web

    Visualizziamo ora i record del database e vediamo se le modifiche sono state influenzate.

    Come puoi vedere dall'immagine sopra, il primo record è stato aggiornato da Joe Thomas a Joe.

    CodeIgniter Elimina record attivo

    Ora elimineremo un record dal database. Elimineremo il record con l'id 3.

    Aggiungi il metodo seguente a ActiveRecordController

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

    QUI,

    • $ questo-> db-> dove ('id', 1); imposta la clausola where
    • $ this-> db-> delete ('orders'); elimina la riga del database nella tabella degli ordini in base ai criteri impostati utilizzando la clausola where.

    Per eseguire il codice sopra, caricare il seguente URL nel nostro browser web

    http: // localhost: 3000 / ar / delete

    Sommario

    In questo tutorial, hai imparato come lavorare con un record attivo per inserire, aggiornare, eliminare e selezionare i record dal database. Abbiamo lavorato con valori statici per creare record, aggiornare ed eliminare. Nel prossimo tutorial, creeremo un'interfaccia utente che l'utente può utilizzare per creare record dinamicamente nel database.