Codeigniter Active Record: Εισαγωγή, Επιλογή, Ενημέρωση, Διαγραφή

Πίνακας περιεχομένων:

Anonim

Τα δεδομένα είναι το αίμα των περισσότερων εφαρμογών. Τα δεδομένα πρέπει να αποθηκευτούν με τέτοιο τρόπο ώστε να μπορούν να αναλυθούν περαιτέρω για να παρέχουν πληροφορίες και να διευκολύνουν τις επιχειρηματικές αποφάσεις. Τα δεδομένα συνήθως αποθηκεύονται στη βάση δεδομένων. Μεταξύ των κύριων ανησυχιών κατά την αλληλεπίδραση με τη βάση δεδομένων είναι η ασφάλεια, η ευκολία πρόσβασης και οι συγκεκριμένες υλοποιήσεις του προμηθευτή βάσης δεδομένων του Structured Query Language (SQL)

Η ενεργή εγγραφή είναι ένα σχέδιο σχεδίασης που καθιστά εύκολη την αλληλεπίδραση με τη βάση δεδομένων με ευκολία, ασφαλή και εύγλωττο τρόπο.

Η ενεργή εγγραφή έχει τα ακόλουθα πλεονεκτήματα

  • Εισαγωγή, ενημέρωση και διαγραφή εγγραφών με απλές αλυσίδες μεθόδων ενεργής εγγραφής
  • Υποβάλλει την είσοδο χρήστη με ασφαλή τρόπο χρησιμοποιώντας παραμέτρους
  • Σας επιτρέπει να εργαστείτε με πολλούς μηχανισμούς βάσης δεδομένων όπως MySQL, SQL Server κ.λπ. χωρίς να ξαναγράψετε τον κώδικα της εφαρμογής
  • Το CodeIgniter χρησιμοποιεί προγράμματα οδήγησης ειδικά για κάθε μηχανή βάσης δεδομένων στο παρασκήνιο.

Σε αυτό το σεμινάριο, θα μάθετε:

  • Τρόπος χρήσης της Ενεργής εγγραφής: Παράδειγμα
  • Διαμόρφωση βάσης δεδομένων CodeIgniter
  • CodeIgniter Εισαγωγή ενεργής εγγραφής
  • CodeIgniter Επιλέξτε Ενεργή εγγραφή
  • CodeIgniter Ενημέρωση ενεργής εγγραφής
  • CodeIgniter Διαγραφή ενεργής εγγραφής

Τρόπος χρήσης της Ενεργής εγγραφής: Παράδειγμα

Σε αυτό το σεμινάριο, θα συζητήσουμε τη βάση δεδομένων του οδηγού. Θα έχουμε δύο τραπέζια, ένα με παραγγελίες το άλλο με λεπτομέρειες.

Αυτό το σεμινάριο προϋποθέτει ότι έχετε εγκαταστήσει και λειτουργεί τη βάση δεδομένων MySQL.

Εκτελέστε τα ακόλουθα σενάρια για να δημιουργήσετε βάση δεδομένων φροντιστηρίου:

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;

Ο παραπάνω κώδικας δημιουργεί μια βάση δεδομένων με το όνομα ci_active_record και δημιουργεί δύο πίνακες, δηλαδή παραγγελίες και παραγγελίες_στοιχείων. Η σχέση μεταξύ των δύο πινάκων καθορίζεται από το αναγνωριστικό της στήλης στις παραγγελίες και στον πίνακα παραγγελίας στο στον πίνακα παραγγελίας.

Διαμόρφωση βάσης δεδομένων CodeIgniter

Τώρα θα διαμορφώσουμε την εφαρμογή μας ώστε να μπορεί να επικοινωνεί με αυτήν τη βάση δεδομένων.

Ανοίξτε το αρχείο διαμόρφωσης βάσης δεδομένων που βρίσκεται στο application / config / database.php

εντοπίστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης

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

Ενημερώστε τον παραπάνω κώδικα στα ακόλουθα

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

Σημείωση: θα πρέπει να αντικαταστήσετε το όνομα χρήστη και τον κωδικό πρόσβασης με αυτά που αντιστοιχούν στη διαμόρφωση του MySQL.

Εκτός από τις λεπτομέρειες διαμόρφωσης της βάσης δεδομένων, πρέπει επίσης να πούμε στο CodeIgniter να φορτώνει τη βιβλιοθήκη της βάσης δεδομένων όταν φορτώνει

Βήμα 1) Ανοίξτε την ακόλουθη εφαρμογή αρχείου / config / autoload.php

Βήμα 2) Εντοπίστε τις βιβλιοθήκες κλειδιών συστοιχίας $ autoload και φορτώστε τη βιβλιοθήκη βάσης δεδομένων όπως φαίνεται παρακάτω

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

ΕΔΩ,

  • Ο παραπάνω κώδικας φορτώνει τη βιβλιοθήκη βάσης δεδομένων κατά την έναρξη της εφαρμογής

CodeIgniter Εισαγωγή ενεργής εγγραφής

Για σκοπούς δοκιμών, θα δημιουργήσουμε έναν ελεγκτή και καθορισμένες διαδρομές που θα χρησιμοποιούμε για να αλληλεπιδράσουμε με την εφαρμογή μας μέσω ενεργής εγγραφής.

Δημιουργήστε μια νέα εφαρμογή αρχείων / ελεγκτές / ActiveRecordController.php

Προσθέστε τον ακόλουθο κώδικα στο ActiveRecordController.php

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

ΕΔΩ,

  • $ data = […] ορίζει δεδομένα μεταβλητής πίνακα που χρησιμοποιούν τα ονόματα των πινάκων βάσης δεδομένων ως κλειδιά πίνακα και τους εκχωρεί τιμές
  • $ this-> db-> insert ('παραγγελίες', $ δεδομένα); καλεί τη μέθοδο εισαγωγής της βιβλιοθήκης βάσης δεδομένων, περνά με τις παραγγελίες ονόματος πίνακα και τη μεταβλητή πίνακα δεδομένων $ ως παράμετρο. Αυτή η γραμμή δημιουργεί τη δήλωση SQL INSERT χρησιμοποιώντας τα πλήκτρα πίνακα ως ονόματα πεδίων και τις τιμές πίνακα ως τιμές που θα εισαχθούν στη βάση δεδομένων.

Τώρα που έχουμε δημιουργήσει με επιτυχία τη μέθοδο ελεγκτή για ενεργή εγγραφή, θα χρειαστεί τώρα να δημιουργήσουμε μια διαδρομή που θα καλέσουμε για να εκτελέσουμε τη μέθοδο ελεγκτή.

Τώρα ανοίξτε Routes.php στην εφαρμογή / config / route.php

προσθέστε την ακόλουθη γραμμή στις διαδρομές

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

ΕΔΩ,

  • Ορίζουμε μια διαδρομή ar / ένθετο που καλεί το store_order του ActiveRecordController.

Ας ξεκινήσουμε τώρα τον web server για να δοκιμάσουμε τη μέθοδο μας.

Εκτελέστε την ακόλουθη εντολή για να ξεκινήσετε τον ενσωματωμένο διακομιστή για PHP

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

ΕΔΩ,

  • Το παραπάνω πρόγραμμα περιήγησης εντολών στη γραμμή εντολών και ξεκινήστε τον ενσωματωμένο διακομιστή στη θύρα 3000.

Φορτώστε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησής σας

http: // localhost: 3000 / ar / ένθετο

Θα λάβετε τα ακόλουθα αποτελέσματα

order has successfully been created

Ανοίξτε τη βάση δεδομένων εκμάθησης MySQL και ελέγξτε τον πίνακα παραγγελιών

Θα μπορείτε να δημιουργήσετε μια σειρά όπως φαίνεται στην παρακάτω εικόνα

CodeIgniter Επιλέξτε Ενεργή εγγραφή

Σε αυτήν την ενότητα, θα δούμε πώς να διαβάσουμε τις εγγραφές που έχουμε στη βάση δεδομένων και να τις εμφανίσουμε στο πρόγραμμα περιήγησης ιστού ως λίστα χωρίς ταξινόμηση

Προσθέστε την ακόλουθη μέθοδο στο ActiveRecordController

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

Orders Listing

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

ΕΔΩ,

  • $ query = $ this-> db-> get ('παραγγελίες'); εκτελεί το ερώτημα επιλογής έναντι του πίνακα παραγγελιών επιλέγοντας όλα τα πεδία
  • echo "

    Λίστα παραγγελιών

    "; εμφανίζει μια επικεφαλίδα HTML μεγέθους 3
  • ηχώ "
      "; εκτυπώνει την ετικέτα ανοίγματος για μη παραγγελθείσα λίστα HTML
    • foreach ($ query-> result () ως $ baris) {…} χρησιμοποίησε το for loop για να βρει τα αποτελέσματα που επιστρέφονται από τη βάση δεδομένων. echo "
    • $ row-> customer_name
    • "; εκτυπώνει το όνομα_ πελάτη από τη βάση δεδομένων

    Πριν φορτώσετε την ακόλουθη διεύθυνση URL, μπορείτε να φορτώσετε μερικές ακόμη εγγραφές στη βάση δεδομένων.

    Ας καθορίσουμε τώρα μια διαδρομή για το ερώτημα SELECT

    Ανοίξτε τον πίνακα application / config / rout.php

    Προσθέστε την ακόλουθη διαδρομή

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

    ΕΔΩ,

    • Η διαδρομή ar δείχνει τη μέθοδο ευρετηρίου της κλάσης ActiveRecordController. Αυτό είναι από προεπιλογή γι 'αυτό δεν καθορίσαμε τη μέθοδο ευρετηρίου όπως κάνατε για τη διαδρομή που εισάγει εγγραφές

    Ας υποθέσουμε ότι ο διακομιστής ιστού εκτελείται ήδη, φορτώστε την ακόλουθη διεύθυνση URL

    http: // localhost: 3000 / ar

    Θα πρέπει να μπορείτε να βλέπετε αποτελέσματα που μοιάζουν πολύ με τα ακόλουθα στο πρόγραμμα περιήγησης ιστού

    CodeIgniter Ενημέρωση ενεργής εγγραφής

    Σε αυτήν την ενότητα, θα μιλήσουμε για τον τρόπο χρήσης της ενεργής εγγραφής για την ενημέρωση της βάσης δεδομένων. Ας υποθέσουμε ότι θέλουμε να ενημερώσουμε το όνομα πελάτη Joe Thomas σε Joe.

    Προσθέστε την ακόλουθη μέθοδο στην κλάση 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';}

    ΕΔΩ,

    • Το $ data = […] καθορίζει τα πεδία και τις τιμές που θέλουμε να ενημερώσουμε στον πίνακα βάσης δεδομένων
    • $ this-> db-> όπου ('id', 1); ορίζει τον όρο όπου το ερώτημα ενημέρωσης
    • $ this-> db-> ενημέρωση ('παραγγελίες', $ δεδομένα); δημιουργεί το ερώτημα ενημέρωσης SQL και το εκτελεί στη βάση δεδομένων μας.

    Ο παραπάνω κώδικας θα παράγει την ακόλουθη δήλωση SQL

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

    Ας ενημερώσουμε τώρα την εφαρμογή rout.php / config / rute.php

    Προσθέστε την ακόλουθη διαδρομή

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

    Αποθηκεύστε τις αλλαγές

    Φορτώστε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησης ιστού

    Ας εμφανίσουμε τώρα τις εγγραφές της βάσης δεδομένων και ας δούμε αν έχουν επηρεαστεί οι αλλαγές.

    Όπως μπορείτε να δείτε από την παραπάνω εικόνα, ο πρώτος δίσκος έχει ενημερωθεί από τον Joe Thomas σε Joe.

    CodeIgniter Διαγραφή ενεργής εγγραφής

    Τώρα θα διαγράψουμε μια εγγραφή από τη βάση δεδομένων. Θα διαγράψουμε την εγγραφή με το αναγνωριστικό του 3.

    Προσθέστε την ακόλουθη μέθοδο στο ActiveRecordController

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

    ΕΔΩ,

    • $ this-> db-> όπου ('id', 1); ορίζει τη ρήτρα όπου
    • $ this-> db-> delete ('παραγγελίες'); διαγράφει τη γραμμή βάσης δεδομένων στον πίνακα παραγγελιών με βάση τα κριτήρια που ορίζονται χρησιμοποιώντας τη ρήτρα όπου

    Για να εκτελέσετε τον παραπάνω κώδικα, φορτώστε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησης ιστού

    http: // localhost: 3000 / ar / διαγραφή

    Περίληψη

    Σε αυτό το σεμινάριο, έχετε μάθει πώς να εργάζεστε με μια ενεργή εγγραφή για εισαγωγή, ενημέρωση, διαγραφή και επιλογή εγγραφών από τη βάση δεδομένων. Εργαστήκαμε με στατικές τιμές για τη δημιουργία εγγραφών, την ενημέρωση και τη διαγραφή. Στο επόμενο σεμινάριο, θα δημιουργήσουμε μια διεπαφή χρήστη που μπορεί να χρησιμοποιήσει ο χρήστης για τη δημιουργία δυναμικών εγγραφών στη βάση δεδομένων.