Подключение к базе данных
Статьи блога должны где-то храниться — для этого сайту нужна база данных. CodeIgniter умеет работать с MySQL, PostgreSQL, SQLite и SQL Server. Чтобы он подключился к базе, достаточно указать адрес сервера, имя базы, пользователя и пароль.
Где лежат настройки
Значения по умолчанию записаны в классе app/Config/Database.php, в свойстве $default. Менять этот файл не нужно: настройки своего компьютера пишут в .env в корне проекта.
database.default.hostname = localhost
database.default.database = blog
database.default.username = root
database.default.password = secret
database.default.DBDriver = MySQLi
database.default.port = 3306В образце env эти строки уже есть, но закомментированы знаком # — уберите его и впишите свои значения. Слово default — имя подключения: в проекте их может быть несколько.
| Строка | Что означает |
|---|---|
hostname | Адрес сервера базы данных |
database | Имя базы |
username, password | Пользователь и пароль |
DBDriver | Драйвер: MySQLi, Postgre, SQLite3, SQLSRV |
port | Порт сервера, для MySQL обычно 3306 |
Создание базы
Саму базу создаёт команда spark:
php spark db:create blogТерминал сообщит, что база blog создана. То же можно сделать в phpMyAdmin или другой программе для работы с MySQL.
Проверка соединения
Объект подключения возвращает функция db_connect(). Проверьте его в любом контроллере:
// app/Controllers/Home.php
public function index(): string
{
$db = db_connect();
return 'Версия сервера: ' . $db->getVersion();
}Откройте главную страницу: если соединение работает, появится строка вида «Версия сервера: 8.0.36». При ошибке CodeIgniter покажет страницу с её описанием.
Простой запрос
Тем же объектом выполняют запросы SQL:
$db = db_connect();
$row = $db->query('SELECT 1 + 1 AS total')->getRowArray();
echo $row['total']; // 2Метод query() отправляет запрос, а getRowArray() возвращает первую строку результата массивом. Писать SQL вручную придётся редко: таблицы создают миграции, а с записями работают модели — о них следующие уроки.
Список таблиц
php spark db:table --showКоманда печатает имена таблиц базы. Пока база пуста, список тоже пуст.
Частая ошибка
Сообщение «Unable to connect to the database» означает, что неверна одна из строк подключения или сервер MySQL не запущен. Проверьте, что строки в .env не начинаются с #, что имя базы совпадает с созданной, а пароль написан без лишних пробелов. Подробный текст ошибки виден только в режиме development.