SQLite в примерах
SQLite - Быстрая лёгкая кроссплатформенная файловая база данных для хранения небольших объемов информации. Встречается повсеместно - android, iOS, браузеры, операционные системы. Имеет собственную реализацию языка SQL. Подходит для реализации на слабых устройствах, например OpenWRT или Raspbian.
- Работа с Sqlite из командной строки
- Работа с Sqlite из PHP
- Визуальное управление sqlite - phpliteadmin
- Решения
Работа с Sqlite из командной строки
Установка библиотек
apt install sqlite3
в интерактивном режиме
sqlite3 cats.db
Из скрипта
#!/bin/sh
output=`sqlite3 cats.db "select * from cats where name='Tom';"`
echo $output
Работа с Sqlite из PHP
Установка
apt install sqlite3 php-sqlite3
Подключение
$db = new SQLite3('mydb.db');
Вставка
$db->exec("INSERT INTO cars(name, color) VALUES('Tom', 'black')");
Выборка
$res = $db->query('SELECT * FROM cats');
while ($row = $res->fetchArray()) {
echo "{$row['id']} {$row['name']} {$row['color']} \n";
}
Через php PDO
$pdo = new PDO('sqlite:mydb.db');
$stm = $pdo->query("SELECT * FROM cats");
$rows = $stm->fetchAll(PDO::FETCH_NUM);
foreach($rows as $row) {
printf("$row[0] $row[1] $row[2]\n");
}
Визуальное управление sqlite - phpliteadmin
К сожалению, кроме проекта phpliteadmin больше никто не написал внятную админку для sqlite на PHP, но и у этого проекта при обновлении до PHP 8.2 появились проблемы совместимости
Пришлось немного подправить. Рабочая версия для php 8.2:
phpliteadmin.v1.9.8.2 - PHP 8.2 adapted
Changes:
1. Mooved class MicroTimer
2. Removed get_magic_quotes_gpc() - not supported
3. Replace
# while (list($key, $val) = each($process)) {
to
foreach ($process as $key => $val) {
Решения
vacuum
Если базу много пишется и стирается - имеет смысл её сжать запросом
$ sqlite3 cats.db 'VACUUM;'
Lisolog / 2023