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

Alexander v2

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

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

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

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

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

Можно ли сделать что-нибудь наподобие в PHP?
 
а почему бы в главном сразу и не законнектиться?
 
Т.е. конект держать все время, запуская его сразу при открытии сайта?
 
закрытие.. ну наверное закрытие тут роли не будет играть:
выполнили скрипт - конект закрыли
 
вот и я удивился
в чём тогда разница, где мы коннектимся - в главном файле или второстепенном?
разве, если коннектимся не в главном - коннект не будет "держать все время", до закрытия?
 
а я думал к чему такие вопросы..
Просто в parser3 методы из главного файла видят все придаточные

-~{}~ 07.08.05 16:46:

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

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

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

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

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

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

-~{}~ 08.08.05 00:12:

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

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

-~{}~ 08.08.05 10:58:

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

-~{}~ 08.08.05 11:15:

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

PS
если знаете где можно прочитать про "правильный" стиль програмирования на PHP дайте ссылку.
 
поделитесь принципом кто как делает
соединяемся.
выполняем запросы.
закроет соединение пхп сам.
создать 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 - один из подходов
 
Сверху