Работа с SQLite
Введение
SQLite – это реляционная база данных, запросы к которой можно осуществлять при помощи языка запросов SQL. База данных не поддерживает все особенности SQL и уступает в функциональности другим развитым СУБД, но вполне подходит для хранения и извлечения информации.
Отличие SQLite от MySQL и аналогичных СУБД
Классические СУБД, такие как MySQL (а так же MS SQL, Oracle, PostgreeSQL) состоят из отдельного сервера, поддерживающего работу базы данных и прослушивающих определённый порт, на предмет обращения клиентов. В качестве клиента может выступать в том числе и расширение PHP, реализующего интерфейс, с помощью которого осуществляются запросы к базе. Движок SQLite и интерфейс к ней реализованы в одной библиотеке, что увеличивает скорость выполнения запросов. Такой сервер часто называют встроенным.
Замечание
Встроенный сервер имеется и у других баз данных, например, у MySQL, но его использование требует лицензионных отчислений, поэтому не получило широкое распространение в мире открытых исходных кодов.
SQLite является бестиповой базой данных. Точнее, есть только два типа – целочисленный "integer" и текстовый "text". Причём "integer" используется преимущественно для первичного ключа таблицы, а для остальных данных пойдёт "text". Длина строки, записываемой в текстовое поле, может быть любой.
Особенности SQLite
Все базы данных хранятся в файлах, по одному файлу на базу. Количество баз данных, а так же таблиц в них, ограниченно только свободным местом, имеющимся на сайте. А максимально возможный объём одной базы данных составляет 2 Тб.
Так как все данные хранятся в файлах, проблем с переносом базы данных с одного хостинга на другой не существует – достаточно лишь скопировать соответствующие файлы.
Установка SQLite
В PHP5 поддержка SQLite установлена и включена по умолчанию.
Установка под Windows: Для установки SQLite необходимо скачать и скопировать в папку с расширениями библиотеку "php_sqlite.dll", которую можно загрузить по ссылке: http://snaps.php.net/win32/PECL_STABLE/php_sqlite.dll. Затем необходимо раскомментировать (или добавить) строку "extension=php_sqlite.dll" в файле "php.ini". Для нормального функционирования SQLite также необходимо раскомментировать строку "extension=php_pdo.dll".
Замечание
Если используется полная версия PHP в zip-архиве, а не в виде инсталлятора, соответствующие библиотеки расширения должны находится в директории ext. Подробнее можно почитать в статье Установка Apache, PHP, MySQL.
Замечание
Библиотека "php_pdo.dll" должна загружаться до загрузки "php_sqlite.dll". То есть в php.ini строка "extension=php_sqlite.dll" должна стоять после "extension=php_pdo.dll".
Установка под Unix: Скачайте свежую версию SQLite с официального сайта (http://sqlite.org/download.html). Прочтите файл "INSTALL", поставляемый с исходными тестами модуля. Или просто воспользуйтесь командой установки PEAR: "pear install sqlite".
Работа с SQLite
Создание базы данных: Для того чтобы создать новую базу данных необходимо воспользоваться функцией sqlite_open(). Если базы, имя которой указано в параметре "filename" не существует, то функция создаст новую базу данных с именем "filename" и вернёт идентификатор базы данных.
resource sqlite_open ( string filename [, int mode [, string &error_message]] )
В скрипте, преведённом ниже, демонстрируется создание новой базы данных:
// Создадим базу данных
$db = sqlite_open("my_database.db");
if (!$db) exit("Не удалось создать базу данных!");
?>
В результате в папке со скриптом у нас появится файл с именем "my_database.db" – наша база данных.
Создание таблиц: Все запросы к базе данных выполняет функция sqlite_query(), которая имеет следующий синтаксис:
resource sqlite_query ( resource dbhandle, string query )
Замечание
Для работы с SQLite, как и любой реляционной базой данных используется язык запросов SQL. Поэтому создать таблицу данных можно при помощи традиционного запроса CREATE TABLE, вставить запись при помощи оператора INSERT, извлечь запись при помощи SELECT, а обновить существующую запись при помощи запроса UPDATE.
В приведённом ниже примере создаётся таблица table1, содержащая три поля: целочисленное поле id, которое выступает в качестве первичного ключа, и два текстовых поля field1 и field2.
// Создадим новую базу данных
$db = sqlite_open("my_database.db");
if (!$db) exit("Невозможно создать базу данных!");
// Создадим таблицу "table1" в базе
$query_table = sqlite_query($db, "CREATE TABLE table1
(id INTEGER PRIMARY KEY,
/* id автоматически станет автоинкрементным */
field1 TEXT,
field2 TEXT);
");
if (!$query_table) exit("Невозможно создать таблицу в базе данных!");
// Запишем что-нибудь в таблицу
$query_insert = sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('PHP5', 'Apache');");
if (!$query_insert) exit("Невозможно записать данные в таблицу!");
?>
После создания таблицы, в неё добавляется запись, содержащая строки 'PHP5' и 'Apache', поле id автоматически получает значение 1.
Вывод данных из базы: Для вывода данных из таблиц используется всё та же функция – sqlite_query(). Если выбирается несколько записей, результат выборки следует обработать при помощи цикла while() и функции sqlite_fetch_array(), которая имеет следующий синтаксис:
array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]] )
Ниже приводится скрипт, демонстрирующий вывод нескольких записей из базы данных:
// Создадим новую базу данных
$db = sqlite_open("my_database.db");
if (!$db) exit("Невозможно создать базу данных!");
// Создадим таблицу "table1" в базе
$query_table = sqlite_query($db, "CREATE TABLE table1
(id INTEGER PRIMARY KEY,
/* id автоматически станет автоинкрементным */
field1 TEXT,
field2 TEXT);
");
if (!$query_table) exit("Невозможно создать таблицу в базе данных!");
// Запишем что-нибудь в таблицу
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('PHP5+', 'Apache');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('SQLite – ', 'классная вещь');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('Посетите ', 'sqlite.org');");
// Сделаем выборку данных
$res = sqlite_query($db, "SELECT * FROM table1;");
// В цикле выведем все полученные данные
while ($array = sqlite_fetch_array($res))
{
echo($array['field1'].$array['field2']." (id записи:".$array['id'].")
");
}
?>
В результате работы скрипта получим:
PHP5+Apache (id записи:1)
SQLite – классная вещь (id записи:2)
посетите sqlite.org (id записи:3)
Редактрирование записи: Для изменения поля воспользуемся функцией sqlite_query() и передадим ей запрос на обновление (UPDATE).
// Создадим новую базу данных
$db = sqlite_open("my_database.db");
if (!$db) exit("Невозможно создать базу данных!");
// Создадим таблицу "table1" в базе
$query_table = sqlite_query($db, "CREATE TABLE table1
(id INTEGER PRIMARY KEY,
/* id автоматически станет автоинкрементным */
field1 TEXT,
field2 TEXT);
");
if (!$query_table) exit("Невозможно создать таблицу в базе данных!");
// Запишем что-нибудь в таблицу
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('PHP5+', 'Apache');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('SQLite – ', 'классная вещь');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('Посетите ', 'sqlite.org');");
// Изменим поле с id=1
sqlite_query($db, "UPDATE table1 SET field2='Apache+Linux' WHERE id=1;");
// Сделаем выборку данных
$query = sqlite_query($db, "SELECT * FROM table1;");
// В цикле выведем все полученные данные
while ($array = sqlite_fetch_array($query))
{
echo($array['field1'].$array['field2']." (id записи:".$array['id'].")
");
}
?>
В результате получим:
PHP5+Apache+Linux (id записи:1)
SQLite – классная вещь (id записи:2)
посетите sqlite.org (id записи:3)
Удаление записи из таблицы: Чтобы удалить запись из таблицы, нужно передать функции sqlite_query() запрос на удаление (DELETE).
// Создадим новую базу данных
$db = sqlite_open("my_database.db");
if (!$db) exit("Невозможно создать базу данных!");
// Создадим таблицу "table1" в базе
$query_table = sqlite_query($db, "CREATE TABLE table1
(id INTEGER PRIMARY KEY,
/* id автоматически станет автоинкрементным */
field1 TEXT,
field2 TEXT);
");
if (!$query_table) exit("Невозможно создать таблицу в базе данных!");
// Запишем что-нибудь в таблицу
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('PHP5+', 'Apache');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('SQLite – ', 'классная вещь');");
sqlite_query($db, "INSERT INTO table1(field1, field2) VALUES ('Посетите ', 'sqlite.org');");
// Удалим поле с id=2
sqlite_query($db, "DELETE FROM table1 WHERE id=2;");
// Сделаем выборку данных
$query = sqlite_query($db, "SELECT * FROM table1;");
// В цикле выведем все полученные данные
while ($array = sqlite_fetch_array($query))
{
echo($array['field1'].$array['field2']." (id записи:".$array['id'].")
");
}
?>
В результате получим:
PHP5+Apache (id записи:1)
посетите sqlite.org (id записи:3)
Закрытие базы данных: Для закрытия базы данных используется функция sqlite_close(). В качестве единственного параметра функция принимает идентификатор открытой базы данных.
void sqlite_close ( resource dbhandle )
Схема использования данной функции представлена ниже
$db = sqlite_open("my_database.db");
/*
... Здесь происходит работа с БД ...
*/
sqlite_close($db);
?>
Замечание
Закрывать базу данных данной функцией – необязательно. Все открытые базы данных автоматически закроются при завершении работы скрипта.


Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2025-03-14 » SPF-запись
- 2025-03-07 » SEO на маркетплейсах: как оптимизировать карточку товара для поисковой выдачи
- 2025-02-18 » Топ-10 бесплатных нейросетей для генерации изображений: лучшие ии генераторы 2024 года
- 2025-02-11 » Критическая уязвимость в 1С-Битрикс
- 2025-02-11 » Google Search Console: руководство для начинающих вебмастеров
- 2025-02-11 » Методы измерения результативности рекламных кампаний: плюсы и минусы
- 2025-02-11 » Тренды SEO в 2025 году
- 2025-02-10 » Свой Google в локалке. Ищем иголку в стоге сена
- 2025-01-29 » SEO — это комплексная работа. Шесть главных факторов ранжирования сайтов
- 2025-01-29 » Гайд для главной страницы e-commerce сайта: как оформить, чтобы повысить конверсию
- 2025-01-20 » Krea AI выпустила бесплатную функцию преобразования изображений в 3D-объекты — их можно вращать и вписывать в фотографии
- 2025-01-15 » Топ-6 лучших российских нейросетей, в которых можно генерировать тексты и изображения бесплатно и без VPN
- 2025-01-14 » 15 бесплатных способов узнать, чем интересуется ваша аудитория
- 2025-01-11 » Бездепозитные бонусы в казино за регистрацию с выводом: особенности и возможности получения
- 2025-01-09 » Новая модель LAM способна выполнять задачи в Word
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
"Самый чепуховый и бесперспективный проект, но уже запущенный и работающий в Сети, принесет гораздо больше результатов и прибыли, чем самый совершенный проект, который из-за своего постоянного предстартового совершенствования никогда не будет запущен." |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Или напишите нам в WhatsApp
Или напишите нам в WhatsApp