PDA

Просмотр полной версии : PHP и Txt Db Api


-Hormold-
06.07.2008, 21:55
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 строчки:

<?
include "patch_to_class/txt-db-api.php";
$db = new Database("user");//База данных. до создания базы это не будет работать.
?>

Что бы выполнить запрос в бд:

<?
$db->executeQuery("...");
?>

Для создания базы можно использовать "CREATE DATABASE cms" а, можно создать папку с названием табдицы в databases.
Дальше сделаем таблицу USER содержащую id,user,pass.

<?
$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')");
?>

Теперь у нас есть таблица с двумя записями в ней.
У меня вышло так:

<?
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')");
?>

Код можно удалить.
Что бы сделать запрос из базы нам нужен такой код:

<?
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.

-Hormold-
06.07.2008, 22:20
Inj там неможет быть.
При использование ', может появится ошибка foreach.
Для улучшения работы можно убирать кавычки через str_replace

Flame of Soul
06.07.2008, 22:27
PHP и Txt Db Api - это конечно хороший скрипт но невижу плюсов от него так таковых, если таковые имеются прошу добавить.
Просто работая с сиквелем значительно лучше так как скорость работы быстрее, если было бы не так то такой скрипт давно был был популярен.

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

n3m0
06.07.2008, 23:04
А как насчёт прав доступа к таблицам\бд ?
Я так понял, их попросту нет ?!?! :(

За старания +

MegaDeth
09.08.2008, 17:17
помниться была такая необходимость))))