Авторские статьи PHP и Txt Db Api

Discussion in 'Статьи' started by -Hormold-, 6 Jul 2008.

  1. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    PHP и DB API.

    В этой статье я опишу работу аналога sql на файлах.

    Краткое содержание:

    • Что это?
    • Установка
    • Как работает?
    • Примеры использования
    • Авторы
    • Заключение

    Часть 1. Что это?

    DB Api - Аналог Sql. Этот скрипт работает на текстовых файлах.
    Офф сайт: http://www.c-worker.ch/txtdbapi/index.php

    Часть 2. Установка

    Для начала скачаем архив отсюда:
    http://downloads.sourceforge.net/flatfiledb/php-txt-db-api-0.3.1-Beta-01.zip?modtime=1106682716&big_mirror=0 (Архив не распаковываем.)
    Далее скачаем установщик:
    http://downloads.sourceforge.net/flatfiledb/installer.php?modtime=1106682738&big_mirror=0

    И скопируем всё в одну папку.
    Я создал папку api у себя на localhost и скопировал туда эти два файла. Заходим туда куда копировали через браузер(У меня http://localhost/api/install.php). Выбираем язык(в нашем случаи это English т.к. Русского там нет). Появляется текст, жмём Next. Дальше указываем пути к папкам для установки(лучше не менять).
    После этого жмём Next. Подтверждаем свой выбор и жмём Next.
    Дальше выбираем что нужно установить. 1- это примеры. 2- это управление бд(Похоже на PhpMyAdmin).3- доки.
    Я оставил всё. Жмём Next.
    Вводим данные для доступа в панель управления(логин и пароль) и жмём next.
    Теперь будет сама установка. Жмём Install и ждём пока распакуется архив.
    Всё!
    Установка законченна! На этой страницы указанны пути к папкам.

    Часть 3. Как это работаеть?

    После установки у нас появились 2 папки.
    Это databases и txt-db-api.
    В первой папке хранятся базы данных .
    Структура папки:
    -databases
    |-somebase
    |-table1
    |-table2
    |-table3
    |-somebase2
    |-table4
    |-table5
    |-table6

    А сама таблица состоит так:
    id#name#pass
    inc#str#str
    ######
    1#test#123
    2#test#321

    Строчка 1 - название колонок
    Строчка 2 - типы колонок(inc,str)
    Строчка 3 - разделение.
    Строчка 4 и 5 - записи в бд.
    Скажу честно, мне так легче редактировать таблици.

    В txt-db-api хранятся очень важные классы, доки, примеры, webgui(аналог phpmyadmin).

    Работает DB Api так же как Sql.
    Например: SELECT * FROM table1 WHERE name=123 ORDER by id

    Часть 4. Примеры.

    Для подключения в php нам нужно 2 строчки:
    PHP:
    <?
    include 
    "patch_to_class/txt-db-api.php";
    $db = new Database("user");//База данных. до создания базы это не будет работать.
    ?>
    Что бы выполнить запрос в бд:
    PHP:
    <?
    $db->executeQuery("...");
    ?>
    Для создания базы можно использовать "CREATE DATABASE cms" а, можно создать папку с названием табдицы в databases.
    Дальше сделаем таблицу USER содержащую id,user,pass.
    PHP:
    <?
    $db->executeQuery("CREATE TABLE user (id inc, user str, pass str)");
    ?>
    После создания таблицы добавим в нёё пару записей:
    PHP:
    <?
    $db->executeQuery("INSERT INTO user(user,pass) VALUES ('test', '111222')");
    $db->executeQuery("INSERT INTO user(user,pass) VALUES ('test2', 'pwd')");
    ?>
    Теперь у нас есть таблица с двумя записями в ней.
    У меня вышло так:
    PHP:
    <?
    include 
    "txt-db-api.php";
    $db = new Database("user");
    $db->executeQuery("CREATE TABLE user (id inc, user str, pass str)");
    $db->executeQuery("INSERT INTO user(user,pass) VALUES ('test', '111222')");
    $db->executeQuery("INSERT INTO user(user,pass) VALUES ('test2', 'pwd')");
    ?>
    Код можно удалить.
    Что бы сделать запрос из базы нам нужен такой код:
    PHP:
    <?
    include 
    "txt-db-api.php";

    $db = new Database("user");
    $d=$db->executeQuery("SELECT * FROM user");

    for(
    $i=0;$i<count($d);$i++){
    $d->next();
    $data $d->getCurrentValuesAsHash();
    print_r($data);
    }
    ?>
    Вот я и описал примеры работы в txt db api(кстати это полное название =)).
    Так же там работает: "LIKE,WHERE,ORDER,UPDATE,DELETE" и т.п.

    Часть 5 и 6. Авторы и Заключение.

    Автор этого класса: http://c-worker.ch.
    Хочу выразить ему благодарность за такую работу.
    Я не хочу вам это навязывать, я просто хочу сообщить что есть удобный вариант БД.

    Спасибо за внимание.
    (C) Hormold.
     
    4 people like this.
  2. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    Inj там неможет быть.
    При использование ', может появится ошибка foreach.
    Для улучшения работы можно убирать кавычки через str_replace
     
    1 person likes this.
  3. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    PHP и Txt Db Api - это конечно хороший скрипт но невижу плюсов от него так таковых, если таковые имеются прошу добавить.
    Просто работая с сиквелем значительно лучше так как скорость работы быстрее, если было бы не так то такой скрипт давно был был популярен.

    На счет статьи:
    1) Хорошее оформление, удобно читать.
    2) Содержание больше походит на редми к скрипту чем на статью (но может мне просто показалось)
     
  4. n3m0

    n3m0 Elder - Старейшина

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    А как насчёт прав доступа к таблицам\бд ?
    Я так понял, их попросту нет ?!?! :(

    За старания +
     
  5. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    помниться была такая необходимость))))