andrey-tech / sqlitedb-php
Простая библиотека для работы с СУБД SQLite 3 для несложных проектов на PHP7+
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/andrey-tech/sqlitedb-php
Requires
- php: ^7.2|^8.0
- ext-pdo: *
This package is auto-updated.
Last update: 2025-10-19 13:26:33 UTC
README
Простая библиотека для работы с СУБД SQLite 3 для несложных проектов на PHP7+.
Содержание
Установка
$ composer require andrey-tech/sqlitedb-php:"^3.0"
Класс SQLiteDB
Финальный класс \AndreyTech\SQLiteDB\SQLiteDB предназначен для работы с СУБД SQLite 3.
При возникновении ошибок в классах пространства имен \AndreyTech\SQLiteDB выбрасывается исключение класса \AndreyTech\SQLiteDB\SQLiteDBException.
Класс \AndreyTech\SQLiteDB\SQLiteDB содержит следующие публичные методы:
__construct(array $config = [], array $options = []): SQLiteDBКонструктор класса.$config- конфигурация соединения с СУБД;$options- опции подключения для драйвера PDO.
connect(): voidВыполняет подключение к серверу СУБД. В обычных условиях не требуется, так как подключение к серверу СУБД выполняется автоматически при первом запросе.disconnect(): voidВыполняет отключение от сервера СУБД. В обычных условиях не требуется, так как отключение от сервера СУБД выполняется автоматически при уничтожении объекта класса.getDSN(): stringВозвращает строку DSN подключения к серверу СУБД.getConfig(): arrayВозвращает конфигурацию соединения с СУБД.getOptions(): arrayВозвращает опции подключения для драйвера PDO.getPDO(): ?PDOВозвращает объект класса\PDO, если соединение с СУБД установлено.isConnected(): boolВозвращает флаг соединения с СУБД:true- соединение установлено,false- не установлено.getDebugMode(): boolВозвращает флаг состояния отладочного режима.setDebugMode(bool $debugMode): voidВключает или отключает отладочный режим работы с выводом информации вSTDOUT.doStatement(string $statement, array $values = [], array $prepareOptions = []): \PDOStatement
Подготавливает запрос, кэширует подготовленный запрос и запускает подготовленный запрос на выполнение.
Возвращает объект класса\PDOStatement.$statement- SQL оператор;$values- массив значений для SQL оператора;$prepareOptions- опции драйвера СУБД для подготовки запроса.
beginTransaction(): voidИнициализирует транзакцию.commitTransaction(): voidФиксирует транзакцию.rollbackTransaction(): voidОткатывает транзакцию.fetchAll(\PDOStatement $stmt): \GeneratorВыбирает все записи с помощью генератора.$stmt- объект класса\PDOStatement.
getLastInsertId(string $idName = null): stringВозвращает значениеidпоследней вставленной записи.$idName- имя столбцаid.
createInStatement(array $in = []): stringСоздает и возвращает строку для выраженияIN (?, ?, ?,...).$in- массив значений внутри выраженияIN (?, ?, ?,...).
Существуют следующие параметры конфигурации и опции подключения с установленными значениями по умолчанию:
$config = [ 'database' => './db.sqlite', // Имя файла СУБД SQLite 'username' => null, // Имя пользователя 'password' => null, // Пароль пользователя ]; $options = [ PDO::ATTR_TIMEOUT => 60, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ];
Примеры
use AndreyTech\SQLiteDB\SQLiteDB; use AndreyTech\SQLiteDB\SQLiteDBException; try { // Устанавливаем имя файла СУБД SQLiteDB $config = [ 'database' => 'my_database.sqlite', ]; $db = new SQLiteDB($config); // Включаем отладочный режим с выводом информации в STDOUT $db->setDebugMode(true); // Отправляем запрос без параметров $stmt = $db->doStatement(' SELECT COUNT(*) AS count FROM contacts '); // Выбираем все записи print_r($stmt->fetchAll()); // Отправляем с использованием именованных параметров $stmt = $db->doStatement(' SELECT * FROM contacts WHERE status = :status LIMIT 10 ', [ 'status' => 1 ]); // Выбираем все записи print_r($stmt->fetchAll()); // Отправляем запрос с использованием НЕ именованных параметров $stmt = $db->doStatement(' SELECT * FROM contacts WHERE status = ? ', [ 1 ]); // Выбираем все записи с помощью генератора $generator = $db->fetchAll($stmt); foreach ($generator as $row) { print_r($row); } } catch (SQLiteDBException $exception) { printf('SQLiteDB exception (%u): %s', $exception->getCode(), $exception->getMessage()); }
Пример вывода отладочной информации в STDOUT:
***** CONNECT "sqlite:my_database.sqlite"
***** [1] SELECT COUNT(*) AS count FROM contacts
***** [2] SELECT * FROM contacts WHERE status = 1 LIMIT 10
***** [3] SELECT * FROM contacts WHERE status = 1
***** DISCONNECT "sqlite:my_database.sqlite"
Автор
© 2019-2023 andrey-tech
Лицензия
Данная библиотека распространяется на условиях лицензии MIT.
