Активен запис на Codeigniter: Вмъкване, Избиране, Актуализиране, Изтриване

Съдържание:

Anonim

Данните са кръвната линия на повечето приложения. Данните трябва да се съхраняват по такъв начин, че да могат да бъдат допълнително анализирани, за да предоставят прозрения и да улеснят бизнес решенията. Данните обикновено се съхраняват в базата данни. Сред основните опасения при взаимодействието с базата данни е сигурността, лекотата на достъп и специфичните за доставчика на базата данни реализации на Структуриран език за заявки (SQL).

Активният запис е модел на проектиране, който улеснява взаимодействието с базата данни по лесен, сигурен и красноречив начин.

Активният запис има следните предимства

  • Вмъквайте, актуализирайте и изтривайте записи с прости вериги от активни записи
  • Изпраща потребителските данни по сигурен начин, използвайки параметри
  • Позволява ви да работите с множество двигатели на бази данни, като MySQL, SQL Server и др., Без да пренаписвате кода на приложението
  • CodeIgniter използва драйвери, специфични за всеки механизъм на базата данни във фонов режим.

В този урок ще научите:

  • Как да използвам Active Record: Пример
  • Конфигуриране на база данни на CodeIgniter
  • CodeIgniter Вмъкване на активен запис
  • CodeIgniter Изберете Активен запис
  • CodeIgniter Актуализиране на активен запис
  • CodeIgniter Изтриване на активен запис

Как да използвам Active Record: Пример

В този урок ще обсъдим базата данни с уроци. Ще имаме две таблици, едната с поръчки, другата с подробности.

Този урок предполага, че имате инсталирана и работеща база данни 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 и създава две таблици, а именно поръчки и подробности за поръчката. Връзката между двете таблици се дефинира от идентификатора на колоната в поръчки и order_id в таблицата order_details.

Конфигуриране на база данни на 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 ('поръчки', $ данни); извиква метода на вмъкване на библиотеката на базата данни, предава в параметрите имената на таблиците и променливата $ data като параметър. Този ред генерира оператора SQL INSERT, като използва ключовете на масива като имена на полета и стойностите на масива като стойностите, които трябва да се вмъкнат в базата данни.

След като успешно създадохме метода на контролера за активен запис, сега ще трябва да създадем маршрут, който ще извикаме, за да изпълним метода на контролера.

Сега отворете маршрути.php в application / config / routes.php

добавете следния ред към маршрутите

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

ТУК,

  • Определяме маршрут ar / insert, който извиква store_order на ActiveRecordController.

Нека сега стартираме уеб сървъра, за да тестваме нашия метод.

Изпълнете следната команда, за да стартирате вградения сървър за PHP

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

ТУК,

  • Горният команден браузър към командния ред и стартирайте вградения сървър на порт 3000.

Заредете следния URL в браузъра си

http: // localhost: 3000 / ar / insert

Ще получите следните резултати

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 () като $ row) {…} използва цикъла for, за да прегледа резултатите, върнати от базата данни. echo "
    • $ row-> client_name
    • "; отпечатва името на клиента от базата данни

    Преди да заредите следния URL адрес, можете да заредите още няколко записа в базата данни.

    Нека сега дефинираме маршрут за заявката SELECT

    Отворете таблицата application / config / routes.php

    Добавете следния маршрут

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

    ТУК,

    • Маршрутът ar сочи към метода на индекса на класа ActiveRecordController. Това е по подразбиране, затова не посочихме метода на индекса, както вие за маршрута, който вмъква записи

    Ако приемем, че уеб сървърът вече работи, заредете следния URL адрес

    http: // localhost: 3000 / ar

    Трябва да можете да видите резултати, които много приличат на следните във вашия уеб браузър

    CodeIgniter Актуализиране на активен запис

    В този раздел ще разкажем как да използвате активния запис за актуализиране на базата данни. Да приемем, че искаме да актуализираме името на клиента Джо Томас на Джо.

    Добавете следния метод към класа 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-> where ('id', 1); задава клаузата where на заявката за актуализация
    • $ this-> db-> update ('поръчки', $ данни); генерира заявка за актуализация на SQL и я изпълнява спрямо нашата база данни.

    Горният код ще създаде следния SQL израз

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

    Нека сега актуализираме приложението routes.php / config / routes.php

    Добавете следния маршрут

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

    Запазете промените

    Заредете следния URL в уеб браузъра

    Нека сега покажем записите в базата данни и да видим дали промените са били засегнати.

    Както можете да видите от даденото по-горе изображение, първият запис е актуализиран от Джо Томас до Джо.

    CodeIgniter Изтриване на активен запис

    Сега ще изтрием запис от базата данни. Ще изтрием записа с идентификатор 3.

    Добавете следния метод към ActiveRecordController

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

    ТУК,

    • $ this-> db-> where ('id', 1); задава клаузата where
    • $ this-> db-> delete ('поръчки'); изтрива реда на базата данни в таблицата с поръчки въз основа на критериите, зададени с клаузата where.

    За да изпълните горния код, заредете следния URL в нашия уеб браузър

    http: // localhost: 3000 / ar / delete

    Обобщение

    В този урок сте научили как да работите с активен запис за вмъкване, актуализиране, изтриване и избор на записи от базата данни. Работихме със статични стойности за създаване на записи, актуализиране и изтриване. В следващия урок ще създадем потребителски интерфейс, който потребителят може да използва за динамично създаване на записи в базата данни.