Уже не первую статью разбираю фреймворк веб разработки на php — Code Igniter.
На этот рас речь пойдёт о моделях данных.
Модель — это своебразная прослойка между базой данных и вашим приложением. Это класс который умеет хранить и модифицировать данные.
Создадим такой.
Первым делом напомню что вам нужно настроить связь с базой данных. Это делается в файле application/config/database.php.
Вам следует указать данные в строках:
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = ''; // имя пользователя бд $db['default']['password'] = ''; // пароль $db['default']['database'] = ''; // имя базы
Также следует обратить внимание на строки:
$db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci';
Измените если у вас другая кодировка таблиц.
Ну и конечно:
$db['default']['dbdriver'] = 'mysql';
Если у вас другая база измените и эту строку.
Когда всё готово следует создать модель.
Идём в папку application/models и создаём файл test.php (имя модели строчными буквами). Открываем и копируем туда:
<?php class Test extends CI_Model { var $str = ""; // поля модели function __construct() // конструктор { parent::__construct(); } function _insert() { // функция вставки данных $this->str = "41sadnkфывоо2"; $this->db->insert('table',$this); // вставляем в таблицу table } } ?>
Что мы сделали?
Мы обявили класс наследник стандартного. Внутри него поле с информацией (str). Таких полей может быть хоть миллион! Но они должны соответствовать структуре таблици!
У нас таблица детская. Она имеет два поля: id и str.
Добавление нового поля происходит при выполнении функции _insert()
Причём сначала заполняется поле класса ( $this->str ). А потом происходит вставка.
Итак модель создана. Теперь идём в обработчик (контроллер) и вызываем эту функцию.
Как создать контроллер?
Перед вызовом загрузите модель:
$this->load->model('Test', 'foo', TRUE);
Первый параметр — имя модели. Второй — имя которое потом можно использовать в коде (см. ниже). Третий — сообщает фреймворку что следует подключиться к базе данных. Когда всё готово вызываем _insert() :
$this->foo->_insert();
Должно получиться 😉 Если что милости просим в коменты разбираться.