PHP статьи и уроки PHP для начинающих. Уроки по PHP.
Работа с массивами, графикой, звуком, базами данных.
Работа с протоколами на сервере HTTP и FTP.
Приветствую Вас, Гость!

Меню сайта
Категории каталога
Другие возможности PHP
Интересные возможности языка PHP, работа с другими языками, внедрение других технологий
PHP и базы данных
Взаимодействие PHP с различными базами данных, включая MySQL, SQLite, PostgreSQL, Oracle, и.т.п.
Работа с переменными
Статьи, посвященные работе с переменными PHP, датой и временем, и.т.п.
Работа с файловой системой
Приемы и методы взаимодействия с файловыми объектами
Работа с графикой и мультимедиа
Вопросы работы с графикой и мультимедиа средствами PHP, изображение, звук
Работа с протоколами HTTP и FTP
Статьи по принципам работы с протоколами HTTP и FTP, включая мехамизмы Cookie и Сессий
Работа с электронной почтой
Работа с электронной почтой средствами PHP
Интересное:
Реклама:
Смотрю "Записки о MacBook и Mac OS", в блоге gamedev программиста.
Главная » Статьи » Статьи » PHP и базы данных

Работа с SQLite

Классические СУБД, такие как 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. 

Замечание

Библиотека "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]] )

В скрипте, преведённом ниже, демонстрируется создание новой базы данных:

<?php
  
// Создадим базу данных
  
$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.

<?php
  
// Создадим новую базу данных
  
$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]] )

Ниже приводится скрипт, демонстрирующий вывод нескольких записей из базы данных:

<?php
  
// Создадим новую базу данных
  
$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'].")<br />");
  }
?>

В результате работы скрипта получим:

PHP5+Apache (id записи:1)
SQLite – классная вещь (id записи:2)
посетите sqlite.org (id записи:3)

Редактрирование записи: Для изменения поля воспользуемся функцией sqlite_query() и передадим ей запрос на обновление (UPDATE).

<?php
  
// Создадим новую базу данных
  
$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'].")<br />");
  }
?>

В результате получим:

PHP5+Apache+Linux (id записи:1)
SQLite – классная вещь (id записи:2)
посетите sqlite.org (id записи:3)

Удаление записи из таблицы: Чтобы удалить запись из таблицы, нужно передать функции sqlite_query() запрос на удаление (DELETE).

<?php
  
// Создадим новую базу данных
  
$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'].")<br />");
  }
?>

В результате получим:

PHP5+Apache (id записи:1)
посетите sqlite.org (id записи:3)

Закрытие базы данных: Для закрытия базы данных используется функция sqlite_close(). В качестве единственного параметра функция принимает идентификатор открытой базы данных.

void sqlite_close ( resource dbhandle )

Схема использования данной функции представлена ниже

<?php
  $db 
sqlite_open("my_database.db");
  
/*
  ... Здесь происходит работа с БД ...
  */
  
sqlite_close($db);
?>

Замечание

Закрывать базу данных данной функцией – необязательно. Все открытые базы данных автоматически закроются при завершении работы скрипта.



Источник: http://softtime.ru
Категория: PHP и базы данных
Просмотров: 5087
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright Viktor L.P. © 2017 Бесплатный конструктор сайтов - uCoz
down