Enregistrement actif Codeigniter: insérer, sélectionner, mettre à jour, supprimer

Table des matières:

Anonim

Les données sont la lignée de la plupart des applications. Les données doivent être stockées de manière à pouvoir être analysées plus avant pour fournir des informations et faciliter les décisions commerciales. Les données sont généralement stockées dans la base de données. Parmi les principales préoccupations lors de l'interaction avec la base de données, il y a la sécurité, la facilité d'accès et les implémentations spécifiques aux fournisseurs de bases de données du langage de requête structuré (SQL).

L'enregistrement actif est un modèle de conception qui facilite l'interaction avec la base de données de manière simple, sécurisée et éloquente.

L'enregistrement actif présente les avantages suivants

  • Insérer, mettre à jour et supprimer des enregistrements avec des chaînes de méthodes simples d'enregistrement actif
  • Soumet l'entrée utilisateur de manière sécurisée à l'aide de paramètres
  • Vous permet de travailler avec plusieurs moteurs de base de données tels que MySQL, SQL Server, etc. sans réécrire le code de l'application
  • CodeIgniter utilise des pilotes spécifiques à chaque moteur de base de données en arrière-plan.

Dans ce tutoriel, vous apprendrez:

  • Comment utiliser Active Record: Exemple
  • Configuration de la base de données CodeIgniter
  • CodeIgniter Insérer un enregistrement actif
  • CodeIgniter Sélectionnez l'enregistrement actif
  • Enregistrement actif de mise à jour de CodeIgniter
  • CodeIgniter Supprimer l'enregistrement actif

Comment utiliser Active Record: Exemple

Dans ce didacticiel, nous aborderons la base de données du didacticiel. Nous aurons deux tableaux, l'un avec les commandes et l'autre avec les détails.

Ce didacticiel suppose que la base de données MySQL est installée et en cours d'exécution.

Exécutez les scripts suivants pour créer la base de données du didacticiel:

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;

Le code ci-dessus crée une base de données nommée ci_active_record et crée deux tables à savoir commandes et order_details. La relation entre les deux tables est définie par l'id de colonne dans les commandes et l'id_ordre dans la table order_details.

Configuration de la base de données CodeIgniter

Nous allons maintenant configurer notre application pour pouvoir communiquer avec cette base de données.

Ouvrez le fichier de configuration de la base de données situé dans application / config / database.php

recherchez les lignes suivantes dans le fichier de configuration

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

Mettez à jour le code ci-dessus comme suit

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

Remarque: vous devrez remplacer le nom d'utilisateur et le mot de passe par ceux qui correspondent à votre configuration de MySQL.

En plus des détails de configuration de la base de données, nous devons également indiquer à CodeIgniter de charger la bibliothèque de base de données lors de son chargement

Étape 1) Ouvrez le fichier suivant application / config / autoload.php

Étape 2) Localisez les bibliothèques de clés du tableau $ autoload et chargez la bibliothèque de base de données comme indiqué ci-dessous

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

ICI,

  • Le code ci-dessus charge la bibliothèque de base de données au démarrage de l'application

CodeIgniter Insérer un enregistrement actif

À des fins de test, nous créerons un contrôleur et des itinéraires définis que nous utiliserons pour interagir avec notre application via un enregistrement actif.

Créer un nouveau fichier application / controllers / ActiveRecordController.php

Ajoutez le code suivant à ActiveRecordController.php

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

ICI,

  • $ data = […] définit une variable de tableau data qui utilise les noms de table de base de données comme clés de tableau et leur attribue des valeurs
  • $ this-> db-> insert ('commandes', $ données); appelle la méthode insert de la bibliothèque de base de données, transmet les ordres de nom de table et la variable tableau $ data comme paramètre. Cette ligne génère l'instruction SQL INSERT en utilisant les clés de tableau comme noms de champ et les valeurs de tableau comme valeurs à insérer dans la base de données.

Maintenant que nous avons créé avec succès la méthode du contrôleur pour l'enregistrement actif, nous devrons maintenant créer une route que nous appellerons pour exécuter la méthode du contrôleur.

Ouvrez maintenant routes.php dans application / config / routes.php

ajouter la ligne suivante aux itinéraires

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

ICI,

  • Nous définissons une route ar / insert qui appelle le store_order de l'ActiveRecordController.

Commençons maintenant le serveur Web pour tester notre méthode.

Exécutez la commande suivante pour démarrer le serveur intégré pour PHP

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

ICI,

  • Le navigateur de commande ci-dessus sur la ligne de commande et démarrez le serveur intégré au port 3000.

Chargez l'URL suivante dans votre navigateur

http: // localhost: 3000 / ar / insert

Vous obtiendrez les résultats suivants

order has successfully been created

Ouvrez la base de données du didacticiel MySQL et vérifiez la table des commandes

Vous pourrez créer une ligne nouvellement créée comme indiqué dans l'image ci-dessous

CodeIgniter Sélectionnez l'enregistrement actif

Dans cette section, nous verrons comment lire les enregistrements que nous avons dans la base de données et les afficher dans le navigateur Web sous forme de liste non ordonnée

Ajoutez la méthode suivante à ActiveRecordController

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

Orders Listing

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

ICI,

  • $ query = $ this-> db-> get ('orders'); exécute la requête de sélection sur la table des commandes en sélectionnant tous les champs
  • echo "

    Liste des commandes

    "; affiche un en-tête HTML de taille 3
  • echo "
      "; imprime la balise d'ouverture de la liste HTML non ordonnée
    • foreach ($ query-> result () as $ row) {…} a utilisé la boucle for pour parcourir les résultats renvoyés par la base de données. echo "
    • $ row-> nom_client
    • "; imprime le nom_client de la base de données

    Avant de charger l'URL suivante, vous pouvez charger quelques enregistrements supplémentaires dans la base de données.

    Permet maintenant de définir une route pour la requête SELECT

    Ouvrez la table application / config / routes.php

    Ajouter l'itinéraire suivant

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

    ICI,

    • L'itinéraire ar pointe vers la méthode d'index de la classe ActiveRecordController. C'est par défaut c'est pourquoi nous n'avons pas spécifié la méthode d'index comme vous l'avez fait pour l'itinéraire qui insère les enregistrements

    En supposant que le serveur Web est déjà en cours d'exécution, chargez l'URL suivante

    http: // localhost: 3000 / ar

    Vous devriez pouvoir voir des résultats très similaires aux suivants dans votre navigateur Web

    Enregistrement actif de mise à jour de CodeIgniter

    Dans cette section, nous expliquerons comment utiliser l'enregistrement actif pour mettre à jour la base de données. Disons que nous voulons mettre à jour le nom du client Joe Thomas en Joe.

    Ajoutez la méthode suivante à la 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';}

    ICI,

    • $ data = […] définit les champs et les valeurs que nous souhaitons mettre à jour dans la table de la base de données
    • $ this-> db-> où ('id', 1); définit la clause where de la requête de mise à jour
    • $ this-> db-> update ('commandes', $ données); génère la requête de mise à jour SQL et l'exécute sur notre base de données.

    Le code ci-dessus produira l'instruction SQL suivante

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

    Mettons maintenant à jour l'application routes.php / config / routes.php

    Ajouter l'itinéraire suivant

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

    Enregistrez les modifications

    Chargez l'URL suivante dans le navigateur Web

    Voyons maintenant les enregistrements de la base de données et voyons si les modifications ont été affectées.

    Comme vous pouvez le voir sur l'image ci-dessus, le premier enregistrement a été mis à jour de Joe Thomas à Joe.

    CodeIgniter Supprimer l'enregistrement actif

    Nous allons maintenant supprimer un enregistrement de la base de données. Nous supprimerons l'enregistrement avec l'ID de 3.

    Ajoutez la méthode suivante à ActiveRecordController

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

    ICI,

    • $ this-> db-> où ('id', 1); définit la clause where
    • $ this-> db-> delete ('commandes'); supprime la ligne de base de données dans la table orders en fonction des critères définis à l'aide de la clause where.

    Pour exécuter le code ci-dessus, chargez l'URL suivante dans notre navigateur Web

    http: // localhost: 3000 / ar / supprimer

    Résumé

    Dans ce didacticiel, vous avez appris à utiliser un enregistrement actif pour insérer, mettre à jour, supprimer et sélectionner des enregistrements dans la base de données. Nous avons travaillé avec des valeurs statiques pour créer des enregistrements, mettre à jour et supprimer. Dans le prochain didacticiel, nous allons créer une interface utilisateur que l'utilisateur peut utiliser pour créer des enregistrements de manière dynamique dans la base de données.