структура приложения

dorfey

Guest
структура приложения

Задача:
имею два конфига (два разных .php файла) и страница выводащая результат работы приложения.

в первом конфиге нужно разместить все функции связанные со sql, т.е. это различные функции управления данными в БД.

во втором конфиге общие настройки приложения отвечающие за графическую часть приложения

ну и страница выводащая результаты - в основном чистый html

так вот, проблема возникла с первым конфигом. не могу чет сообразить куда лучше поместить такие функции как
PHP:
mysql_connect()
и
PHP:
mysql_close()
первым что приходит в голову это составить приложение следующим образом:

1. функции для работы с БД. sql.php:
PHP:
mysql_connect()
# тут идет куча функции связанных с управлением данных в БД
mysql_close()
2. функции графического отображения приложения. graf.conf.php:
примерное содержание:
$title = "заголовок";
$tmpl = "шаблон_используемый_для_приложения";

3. страница принта информации. index.html
<html>
.........
</html>

в index.html инклудится два конфига.

проблема возникла с тем что sql.php читается и в конце связть с mysql закрывается. т.е. функции запроса данных из бд уже не придут.

самое простое решение это mysql_connect и close добавить в начало и конец index.html, но мне хотелось что бы все что связано с mysql лежало в специально предназначенном конфиге.

отсюда вопрос. как разрулить ситуацию? :(

зы. в конце недели крышу совсем сносит
 

440hz

php.ru
dorfey
по-моему, ты запутался в функциях и их вызовах. 8)

PHP:
include_once('mysql.inc');
include_once('funct.inc');
include_once('other.inc');

include_once('start.inc');

# тут что-то делаем ...

include_once('stop.inc');

соотвественно
mysql_connect(), mysql_select_db() ложаться в start.inc
mysql_close() в stop.inc

p.s. PHP пофиг какое расширение имеет включаемый файл
 
dorfey
как вариант. создай класс, в котором в конструкторе будет происходить вызов mysql_connect(), а в деструкторе mysql_close()....

и просто в каждом файле, в которойм необходима работа с БД, создавай экземпляр этого класса...
 

dorfey

Guest
Steamroller
Соединение само закроется, после завершения скрипта.
при этом есть ситуации когда соединение провисает оставшись не закрытым.

include_once('start.inc');
# тут что-то делаем ...
include_once('stop.inc');
не хотелось бы так решать проблему, т.к. считаю что добавлять к структуре два новых файла для двух функций это изврат.

PHP пофиг какое расширение имеет включаемый файл
а я и не сомлевался, просто первое что в голову пришло ;)

-~{}~ 09.12.05 17:36:

как вариант. создай класс, в котором в конструкторе будет происходить вызов mysql_connect(), а в деструкторе mysql_close()....
вариант не плохой, но боюсь моих познаний в ООП не хватает для написания собственных классов :(
 

440hz

php.ru
dorfey
если ты в start.inc планируешь только mysql_connect(), тогда вообще на парься над этим.
у меня в start.inc много чего происходит, например включение необходимых файлов, коннект к базам, разруливания языков и т.д.


p.s. когда это соединение НЕ закрывается при mysql_connect() ? Можно примерчик?
 

Steamroller

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

-~{}~ 09.12.05 17:45:

Вообще на функциях я так делал: глобальная переменная, в которой хранится link (то что connect возвращает), все запросы идут через функцию-обертку, которая проверяет - создано ли уже соединение, и если нет - то создает.
Корявенькое конечно решение, но зато не подключается к базе без необходимости.
 
Сверху