SQLite и PHP. Альтернатива MySQL

вторник, Jul 7, 2009

Веб-программирование

sqliteSQLite – это база данный основанная на файлах и использующая синтаксис SQL . По производительности порой обгоняет MySQL, а порой и уступает  (зависит от настроек сервера).

Одной из примечательных особенностей является то, что база данных при использовании SQLite находиться на одном сервере с PHP. Недостаток это или преимущество сказать сложно, нужно смотреть по ситуации)

Вообще SQLite редкость для наших хостеров и её поддержку нужно ещё поискать.

Что б вы не думало, что SQLite такое “г” напомню, что приложения таких контор как Mozilla, Adobe, Symbian использую для хранения своих данных именно эту БД.

Из бесплатных хостингов SQLite поддерживает ByetHost. Или можно играться на локалке, установив Denwer (как сделал я).

Собственно синтаксис запросов у SQLite и MySQL одинаковый. Как никак SQL он и в Африке SQL %)

Начнём работать!

  • Создание базы данных
    Для того чтобы создать новую базу данных необходимо воспользоваться функцией sqlite_open()

    resource sqlite_open ( string filename )

    Где filename – имя файда БД

    Пример:

    <?
      // Создадим базу данных
      $db = sqlite_open("database.db");
      if (!$db) die("Не удалось создать базу данных!");
    ?>

    Как результат получим файл database.db в папке со скриптом

  • Создание, чтение, обновление и удаление таблиц
    Все запросы к базе данных выполняет функция sqlite_query()

    resource sqlite_query ( resource dbhandle, string query )

    dbhandle – это Бд, а query – собсна сам запрос

    А теперь большой пример в котором реализована вся работа с базой данных. Заметим, что для вывода данных из таблиц используется всё та же функция – sqlite_query(). Если выбирается несколько записей, результат выборки следует обработать при помощи цикла while() и функции sqlite_fetch_array()

    Пример:

    <?
    
    // Создадим новую базу данных
    $db = sqlite_open("database.db");
    if (!$db) exit("Невозможно создать базу данных!");
    
    /* Содание таблицы-------------------------------------------------- */
    
    // Создадим таблицу "table1" в базе
    $query_table = sqlite_query($db, "CREATE TABLE table1
                         (id INTEGER PRIMARY KEY,
                         /* id автоматически станет автоинкрементным */
                         field1 TEXT);
                          ");
    if (!$query_table) exit("Невозможно создать таблицу в базе данных!");
    
    /* Ввод данных------------------------------------------------------- */
    
    // Запишем что-нибудь в таблицу
    $quer_ins = sqlite_query($db, "INSERT INTO table1(field1) VALUES ('A');");
    $quer_ins = sqlite_query($db, "INSERT INTO table1(field1) VALUES ('B');");
    $quer_ins = sqlite_query($db, "INSERT INTO table1(field1) VALUES ('C');");
    if (!$query_ins) exit("Невозможно записать данные в таблицу!");
    
    /* Изменение данных------------------------------------------------- */
    
    // Изменим поле с id=1
    sqlite_query($db, "UPDATE table1 SET field1='G' WHERE id=1;");
    
    /* Удаление данных-------------------------------------------------- */
    
    // Удалим поле с id=2
    sqlite_query($db, "DELETE FROM table1 WHERE id=2;");
    
    /* Вывод данных----------------------------------------------------- */
    
    // Сделаем выборку данных
    $res = sqlite_query($db, "SELECT * FROM table1;");
    
    // В цикле выведем все полученные данные
    while ($array = sqlite_fetch_array($res))
      {
      echo($array['field1']." (id записи:".$array['id'].")<br />");
      }
    
    ?>

    Я думаю, что код читабелен и хорошо задокументирован, так, что вопросов быть не должно. Хотя если найдутся не стесняйтесь и задавайте ;)

  • Закрытие базы данных
    Поработали и хватит) Для закрытия используется функция sqlite_close()

    void sqlite_close ( resource dbhandle )

    dbhandle – имя БД

    Пример:

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

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

Ну вот пожалуй и всё) Теперь можно смело создавать какое-нибудь приложение использующее SQLite %)

Popularity: 15%

Читать также

, , , ,

3 комментариев к этой статье

  1. ML написал:

    Надо будет поэкспериментировать в свободное время.
    А вообще мое доверие полностью завоевала субд MySQL.

  2. Joker-jar написал:

    Довольно интересное решение. Для проектов с небольшой нагрузкой, думаю, вполне сгодится

  3. JJ написал:

    В листинге есть ошибки

Оставить комментарий

Before you submit form: