Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   PHP и Txt Db Api (https://forum.antichat.xyz/showthread.php?t=76255)

-Hormold- 06.07.2008 21:55

PHP и Txt Db Api
 
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/fla...8&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.

-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

помниться была такая необходимость))))


Время: 02:23