Основы использования 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);
Инструменты администрирования БД SQLite
Sqliteman - полезный инструмент для администрирования баз данных SQLite3. Это аналог привычного phpmyadmin для MySql. Программа имеет неплохой графический интерфейс на русском языке, является портативной и не требует установки на ПК. Скачать Sqliteman можно по этой ссылке .
Ещё один популярный менеджер баз данных SQLite - SQLiteStudio