Соединение и выбор бд

Alexander v2

Новичок
Соединение и выбор бд

Интересует такой вопрос:
Можно ли как-нибудь не писать каждый раз mysql_connect и mysql_select, а прописать один раз метод и им пользоваться.

Я програмирую на Parser3, там можно поступить так:
Метод описывается в главном файле

@dbconnect
Код:
$conn[mysql://login:password@localhost/dbname]
^connect[$conn]{$code}

Затем мы просто используем этот метод где нам надо:
^MAIN:dbconnect{
  query...
}

Можно ли сделать что-нибудь наподобие в PHP?
 

Фанат

oncle terrible
Команда форума
а почему бы в главном сразу и не законнектиться?
 

Alexander v2

Новичок
Т.е. конект держать все время, запуская его сразу при открытии сайта?
 

Alexander v2

Новичок
закрытие.. ну наверное закрытие тут роли не будет играть:
выполнили скрипт - конект закрыли
 

Фанат

oncle terrible
Команда форума
вот и я удивился
в чём тогда разница, где мы коннектимся - в главном файле или второстепенном?
разве, если коннектимся не в главном - коннект не будет "держать все время", до закрытия?
 

Alexander v2

Новичок
а я думал к чему такие вопросы..
Просто в parser3 методы из главного файла видят все придаточные

-~{}~ 07.08.05 16:46:

Меня вообще сейчас очень интересует как пишут нормальные люди на PHP, чтобы не писать код в 2 раза больше чем надо. Сейчас разбираю этот вопрос и паралельно Smarty.

Еще один вопрос. Можно ли создавать собственные подключаемые классы? Т.е. класс например msgboard, который можно вызывать из любого места. Я думаю в PHP так можно.
 

Фанат

oncle terrible
Команда форума
судя по всему, то, что называется методом в парсере, в языках программирования называется функцией.

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

можно написать класс.
можно подключить файл с этим классом.
можно подключить файл автоматически.

этой информации достаточно?
 

Alexander v2

Новичок
да, спасибо.
Насчет конекта не могли бы не много по подробнее? Как нужно делать?
 

Фанат

oncle terrible
Команда форума
как нужно делать что?
коннект?
или как делать коннект автоматом?
создать файл с функцией mysql_connect
а потом в скриптах, в которых нужен коннект к базе, подключать с помощью оператора include
если хочется написать функцию или класс - создать функцию или класс, записать в файл, а потом включать его в те скрипты, где надо.

если надо, чтобы файл подключался автоматом - см параметр настройки пхп auto_prepend_file
 

Alexander v2

Новичок
во, теперь понял, большое спасибо

-~{}~ 08.08.05 00:12:

А закрытие соединения можно как-нибудь автоматизировать?
Писать функцию - полчится тоже самое что и просто закрыть (придется каждый раз вставлять). Есть какие-нибудь решения?
Мне в голову приходит только передавать в функцию с коннектом параметр с запросом и в этой же функции закрывать конект (здесь "-" в том что запросов к бд может быть несколько, соответственно еще один вопрос: как передавать параметры функции, если мы заранее не знаем их кол-ва?).
 

Фанат

oncle terrible
Команда форума
передавать в функцию с коннектом параметр с запросом и в этой же функции закрывать конект (здесь "-" в том что запросов к бд может быть несколько
кто-то из нас чего-то не понимает.
при чём здесь запросы, если ты говоришь о коннекте?
 

Alexander v2

Новичок
Может я неправильно понимаю коннект в PHP. Я хотел добиться следующей конструкции:

Функция описывающая подключение:

function dbconnect()
{
$conn = mysql_connect("localhost", "root", "xxx111")
or die("Could not connect : " . mysql_error());
mysql_select_db("catalog")
or die("Could not select database");
}

Если использовать эту конструкцию так:
dbconnect()
Query...
mysql_close($conn)

то каждый раз придется добавлять mysql_close($conn)
Или конект закрывать не обязательно?

А можно попробовать сделать так:

function dbconnect($query)
{
$conn = mysql_connect("localhost", "root", "xxx111")
or die("Could not connect : " . mysql_error());
mysql_select_db("catalog")
or die("Could not select database");
return $query

mysql_close($conn)

}
Вызываем:
dbconnect(тут описываем переменную с запросом)

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

baev

‹°°¬•
Команда форума
А можно попробовать сделать так:
-- э-э...
Пробовать-то можно, а смысл?
Где у Вас сам запрос к базе?
Вы базу выбрали, потом коннект закрыли -- и?..
 

Фанат

oncle terrible
Команда форума
Alexander v2
то есть, ты хочешь перед каждым запросом соединяться, а после каждого запроса - закрывать соединение?
а зачем?
 

Demiurg

Guest
коннект закрывать не обязательно, он автоматически закрывается при завершении скрипта.
 

Alexander v2

Новичок
Автор оригинала: baev
-- э-э...
Пробовать-то можно, а смысл?
Где у Вас сам запрос к базе?
Вы базу выбрали, потом коннект закрыли -- и?..
И.. собственно всё.. только между открыли и закрыли помещается запрос к бд, который сформирует массив данных.

-~{}~ 08.08.05 10:58:

Автор оригинала: Фанат
Alexander v2
то есть, ты хочешь перед каждым запросом соединяться, а после каждого запроса - закрывать соединение?
а зачем?
Да, примерно так, только с возможностью добавления внутрь нескольких запросов сразу. Хотя я сейчас начинаю въезжать немного и думаю, что я ошибаюсь..

-~{}~ 08.08.05 11:15:

Вообще, если не сложно, поделитесь принципом кто как делает. И еще вопрос про структурированность:
К примеру есть главная страница, на ней выводятся новости, новые объявления, новые участники. Т.е. 3 скрипта с запросом в бд. Как делать правильно: создать Index.php, описать там эти 3 скрипта и передать в шаблон?

PS
если знаете где можно прочитать про "правильный" стиль програмирования на PHP дайте ссылку.
 

Фанат

oncle terrible
Команда форума
поделитесь принципом кто как делает
соединяемся.
выполняем запросы.
закроет соединение пхп сам.
создать Index.php, описать там эти 3 скрипта и передать в шаблон?
честно говоря, не понял, что значит "описать" и что значит "передать в шаблон".
если знаете где можно прочитать про "правильный" стиль програмирования на PHP дайте ссылку.
к сожалению, такого не существует
стилей слишком много.
вот тебе несколько ссылок для начала
http://phpfaq.ru/photo/gallery.php - только сам принцип построения галереи дурацкий. нельзя на файлы по номеру ссылаться. надо по имени
http://dklab.ru/chicken/nablas/16.html - сильно старая, правда
http://eugene.net.ru/other/php/portal/intro.php - один из подходов
 
Сверху