Основы использования SQLite3 в PHP
В этой статье рассмотрим основы SQLite3 для PHP - полезной библиотеки (расширение для PHP), написанной на языке C, которая осуществляет механизм работы с данными с помощью SQL. Фактически, это безтиповая база данных, которая содержится всего в одном файле, который в свою очередь находится в самом проекте (в его файловой системе). Технически в этой базе всё - строки. Мы указываем тип данных для самой библиотеки, чтобы она сама "разруливала" сортировку по числовым полям.
Преимущества и ограничения
Преимущества:- Полностью бесплатна
- Нет необходимости в средствах администрирования
- Высокая производительность и легкая переносимость
- Поддержка процедурного и объектно-ориентированного интерфейсов
- Хранение больших объемов данных
- Хранение строк и бинарных данных неограниченной длины
- Предназначена для небольших и средних приложений
- Основной выигрыш в производительности, если преобладают операции вставки и выборки данных
- При чрезвычайно активном обращении к данным, или в случае частых сортировок, SQLite работает медленнее своих конкурентов
Поддержка SQLite3 в PHP
- ВPHP 5.0 поддержка SQLite версии 2 была встроена в ядро
- Начиная с PHP 5.1 поддержка SQLite вынесена за пределы ядра
php_sqlite
- В PHP 5.3 добавлена поддержка SQLite версии 3
php_sqlite3
- В PHP 5.4 поддержка SQLite версии 2 удалена
php_sqlite
Особенности SQLite3
Можно так:
CREATE TABLE users(id INTEGER, name TEXT, age INTEGER)
Или так:
CREATE TABLE users(id, name, age)
Для задания первичного ключа
id INTEGER PRIMARY KEY
id INTEGER PRIMARY KEY AUTOINCREMENT
Экранирование строк через двойной апостроф
'Harry O''Brian'
Создание, открытие и закрытие базы данных
//Создаём или открываем базу данных test.db
$db = new SQLite3("test.db");
//Закрываем базу данных без удаления объекта
$db->close();
//Открываем другую базу данных для работы
$db->open("another.db");
//Удаляем объект
unset($db);
Выполнение запроса
//Экранирование строк
$name = $db->escapeString($name);
//Для запросов без выборки данных
$sql = "INSERT INTO users (name, age) VALUES ('$name', 25)";
//Возвращает значение булева типа
$result = $db->exec($sql);
//Количество изменённых записей
echo $db->changes();
//Отслеживание ошибок
echo $db->lastErrorCode();
echo $db->lastErrorMsg();
Подготовленные запросы
$sql = "INSERT INTO users (name, age) VALUES (:name, :age)";
//Готовим запрос
$stmt = $db->prepare($sql);
//Привязываем параметры
$stmt->bindParam(':name',$name);
$stmt->bindParam(':age',$age);
//Исполняем запрос
$result = $stmt->execute();
//Закрываем при необходимости
$stmt->close();
Выборка данных
$sql = "SELECT name, age FROM users";
// В случае неудачи возвращает false
$result = $db->querySingle($sql);
//В $result - значение первого поля первой записи
$result = $db->querySingle($sql, true);
// В $result - массив значений первой записи
// Стандартная выборка
$result = $db->query($sql);
// Обработка выборки
$row = $result->fetchArray(); // SQLITE3_BOTH
// Получаем ассоциативный массив
$row = $result->fetchArray(SQLITE3_ASSOC);
// Получаем индексированный массив
$row = $result->fetchArray(SQLITE3_NUM);
Sqliteman - инструмент администрирования БД Sqlite
Предлагаю присмотреться к очень полезному инструменту для Sqlite3. Это аналог привычного phpmyadmin для MySql. Программа имеет неплохой графический интерфейс на русском языке, является портативной и не требует установки на ПК. Скачать Sqliteman можно по этой ссылке.
Ещё один популярный менеджер баз данных Sqlite - SQLiteStudio
01.07.2020 Источник