| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Элегантный стиль написания php-скриптов |
| Автор: s_a_s_h_a 4.3.2005, 09:38 | ||||||
| Здравствуйте. Предлагаю в этой теме поговорить об элегантном, красивом, оптимизированом, понятном стиле написания php-скриптов. Я совсем недавно решил разобраться с php и некоторые вещи из мануалов мне не очень понравились, но т.к. читал я не все, что уже успело написать человечество и не видел самих скриптов на php, то надеюсь, что можно писать код по-другому. И вот первый вопрос. Работа с MySQL Если надо получить одну строчку при селект-запросе, то хотелось бы что-нибудь по типу перла:
вместо
и ещё из перла:
+ то, что переменные $p1,$p2 используются только в теле цикла. И как быть если в одном скрипте надо работать с несколькими базами данных. В перле, например, создается "указатели" на БД и можно с ними работать. А в мануале по php видел только, что устанавливается соединение и потом все функции работают с этой БД, пока соединение не будет закрыто. |
| Автор: Farik 4.3.2005, 10:29 | ||||||
Если поле одно, то
но сама по себе функция медленная, поэтому при двух и более полях использовать не стоит Для твоей задачи следует наверное всё таки написать свой класс c реализацией метода подобного "короткого" доступа, тк ни в mysql ни в mysqli такие вещи не предусмотрены, если уж так хочется сократить саму запись, то можно попробовать так
то есть решить задачу не методами драйвера, но методами ПХП перед тем, как использовать подобный код сдоит десять раз подумать, тк он уменьшает наглядность и добавляет уйму проблем при отладке и поиске ошибок
Не очень понял... Соединение устанавливается, возвращается идентификатор. В mysql, если не указывать идентификатор в функции, будет работать с последним открытым. В mysqli требуется указание при любом использовании, но класс сам за тебя таскает идентификатор соединения. |
| Автор: s_a_s_h_a 4.3.2005, 15:39 | ||
Поясняю на примере перла, что я имел ввиду
На php что-нибудь такое возможно? |
| Автор: korob2001 4.3.2005, 15:55 |
| s_a_s_h_a Ты хочешь работать сразу с двумя базами????? |
| Автор: s_a_s_h_a 4.3.2005, 16:18 |
| Вообще нет, но чисто теоретически. Хотя что такого, если например нужны будут какие-нибудь действия с уже существующими базами, тогда буду. |
| Автор: IZ@TOP 4.3.2005, 17:56 | ||
| s_a_s_h_a, ну так юзай свой класс. Я вот например написал класс для работы с MySQL (впррочем кто себе еще не написал?). А потом юзай:
|
| Автор: Mal Hack 4.3.2005, 19:54 |
| А зачем открывать два соединения на одного пользователя. Это же сервер грузить будет. Почему бы через тот же класс не сменить просто базу mysql_select_db() ?? |
| Автор: yUAC 4.3.2005, 21:25 | ||||
Мдя. Господа...
Насчет своего класса базы данных:
|
| Автор: skalex 5.3.2005, 09:23 |
| Можно не изобретать велосипед и воспользоваться уже готовыми библиотеками. Некоторую информацию можно получить например здесь: http://detail.phpclub.net/article/2001-03-13 |
| Автор: IZ@TOP 5.3.2005, 09:52 | ||
Я просто по примеру из перла сделал. Разумеется для таких нужд можно юзать $db->selectBase(string baseName). Либо использовать несколько указателей на соединения. |