Posts Tagged ‘СУБД’

try..catch VS if…else. Что, когда и почему?

Среда, Февраль 27th, 2008

Эволюция языков программирования приводит иногда к кардинальным изменениям в мировоззрении разработчиков. Такое случилось при появлении пятой ветки PHP, которая принесла новую объектную модель, новые наборы встроенных функций и новые методы обработки ошибок… (more…)

Nested Sets

Понедельник, Январь 14th, 2008

В очередной раз столкнулся с ситуацией, когда данный алгоритм просто жизненно необходим и снова столкнулся с тем, что из предложенного в Сети нет ничего рабочего под PHP :( (more…)

идея для взаимодействия JS и DOM объектов

Пятница, Январь 11th, 2008

углабряясь в разработку Online MySQL DB Designer‘а, возникла проблема в обратном обращении DOM объектов к JS объектам, которые являются движущей моделью редактора. Собственно сама проблема выражается в том, что созданная из JS объекта DOM таблица (например) теряет любую связь со своим пораждающим объектом (JS).

(more…)

рефакторинг и немного +

Вторник, Июль 31st, 2007

хочу спрогнозировать некоторые изменения в базовом классе… + появится два новых класса для создания более качественных объектных решений на их основе, а так же будет подготовлена некоторая статья по практике применения паттернов проектирования и ООП в целом… осталось дождаться свободного времени :)

PHP транзакция

Суббота, Июнь 16th, 2007

возможно сглупил написал нижеприведенный код, посему хочу развернуть небольшое обсуждение на тему хорошо/плохо.

Задача: выполнить скрипт, занимающий большой период времени (секунд 20 например).
Проблема: при нескольких обращениях к скрипту запускалось несколько раз это действие и в итоге процесс либо зависал, либо постоянно обрабатывал данные (например заполнение некой таблицы, которую брать в транзакцию нельзя было на уровне СУБД)

мое решение:

$fname = ROOT."/transaction.lock";
if (!file_exists($fname) || filemtime($fname) < time() - 10 * 60) {
    @unlink($fname);
    $fp = fopen($fname, "w+t");
    fclose($fp);
    chmod($fname, 0777);
    //наши мега действия
    unlink($fname);
}

жду фразы “велосипед” и нормального решения :)))

PHP + MSSQL и такие незаметные грабли

Четверг, Май 17th, 2007

вот только что в аську постучался хороший знакомый программист 4m@t!c с проблемой, которая спать не давала уже некоторое время - в связке РНР + MSSQL запросы отрабатывались ОООЧЕНЬ медленно что создавало некий дискомфорт и неуютность… перебирать начали как обычно с алгоритмов реализации запросов, подзапросов, резмещении серверов относительно друг друга, серверные площадки (софт), канал и способ связи между ними… все казалось бы идеально и не должно создавать ощутимых задержек при работе, но факт оставался фактом - mssql_query() по сравнению с MS QueryAnalyzer очень тормозило. и тут меня осенило что когда-то был в похожей ситуации и три дня не мог успокоится из-за производительности связки PHP и MS SQL Server. Выход оказался чрезвычайно простым: идем в PHP скрипт и меняем формат коннекта с named pipes на ip :) в итоге:
было: mssql_connect(”//Server”, $username, $password);
стало: mssql_connect(”192.168.10.1:515″, $username, $password);

все - на этом мучения закончились, а производительность выросла в разы :) удачи, если у кого такая же проблема. для повышения производительности всегда должно находится время ;)

расширяем класс для БД

Четверг, Май 10th, 2007

Итак вот и пришло время анонсировать версию под номером 5 базового класса для обработки БД. Продукт выпущен немного в ускореных темпах, так как в предидущей присутствовали некоторые опечатки и ошибки, а так же появились некоторые проблемы с совместимостью с предидущими версиями класса, посему обновление желательное, но читайте ChangeLog во избежании недоразумений…

просьба об ошибках/очепятках сообщать на email или в аську (указано внутри класса) для более эффективной работы класса в будущем.

Специальное спасибо Querty и uncle_doc, которые внесли пожелания и указали на некоторые недоработки в проекте.

Версия пять

дамп данных из MySQL

Вторник, Апрель 3rd, 2007

возникла задача реализовать на сайте возможность загрузки полного дампа данных из БД в файл клиента. MySQL средства аля SELECT … INTO OUTFILE не подходят по причине отсутствия (гипотетического) прав на сохранение… Решил писать свое лисапедо :) Вот что получилось:
(more…)

базовый класс - шаг вперед

Пятница, Март 30th, 2007

выложил в общий доступ новую версию базового класса. как и предполагалось - основным изменением стало появлением метода setJoin что позволяет теперь с легкостью связывать любое кол-во таблиц с отношениями 1:n.
(more…)

статья по классу

Среда, Март 14th, 2007

вот сегодня добрался наконец-то до статьи по своему базовому классу, с которым уже существую более полутора лет, но все никак не являл его свету. только группы разработчиков, в которых я учавствовал имели возможность с ним ознакомиться - теперь же он доступен общественности:

читать о базовом классе

З.Ы. На основе этого набора методов написано 70% проектов указаных в портфолио. Дальнейшие так же будут на нем построены, хотя думаю что видоизменен он будет порядком…