Основы использования 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

Источник

Другие статьи

SQLite
SQLite3: Транзакции с использованием PHP PDO
SQLite3: Транзакции с использованием PHP PDO

В этом уроке мы рассмотрим, как использовать функции транзакций PHP PDO для обеспечения целостности данных в б...

SQLite
SQLite3: Работа с BLOB-типом данных
SQLite3: Работа с BLOB-типом данных

В этом уроке вы узнаете, как управлять BLOB-данными в базе данных SQLite с помощью PHP PDO. BLOB обозначает бо...

SQLite
SQLite3: Получение данных из таблиц с помощью PHP PDO
SQLite3: Получение данных из таблиц с помощью PHP PDO

В этом уроке показано, как можно различными способами запрашивать данные из таблицы SQLite с помощью PHP PDO....