| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Не могу соединиться с сервером базы данных |
| Автор: ReactOS 6.5.2008, 14:56 | ||
| Добрый день! У меня такая проблема:
Если я из кода уберу "function connect_to_db() { } connect_to_db();" , то код уже рабочий, и происходит соединение к серверу базы данных. Не могу понять, почему если я хочу добавить в код "function function_name() { } function_name();" - то перестает работать :( Вроде переменная $cnx находится в теле функции, да и с code syntax - все нормально :( Конечно можно и обходиться и без этого, но так неудобно по коду искать, тем более в Notepad++ есть поиск по ф-циям в коде, достаточно кликнуть по нужной функции, и ты будешь перенаправлен на нужную строку Почему не работает код? В чем ошибка? |
| Автор: DeamonShan 6.5.2008, 14:59 | ||
| Внутри функции переменные $host, $user, $pass неопределены.... попробуй так, передать их или возми из global
|
| Автор: Feldmarschall 6.5.2008, 15:08 |
| Непонятно, зачем эту функцию искать по коду, если она нужна ровно один раз. |
| Автор: krundetz 6.5.2008, 15:09 | ||
| через global советую ничего не обьявлять. Ни только в этом случае но и в любом коде. Лучше сделай так:
в этом случае у тебя все будет в одном месте и соедеинение с базой данных и параметры необходимые для этого. |
| Автор: Feldmarschall 6.5.2008, 15:12 |
| а зачем параметры держать в одном месте с подключением? Обычно параметры лежат в файле с настройками. |
| Автор: DeamonShan 6.5.2008, 15:13 |
| ага, или лучше, если все в конфиг файле хранится, передать через аргументы... |
| Автор: krundetz 6.5.2008, 15:15 | ||
Боюсь человек пока до конфигурационных файлов не дорос. Но на будущее действительно параметры в конфиг и передача по аргументу. |
| Автор: krundetz 6.5.2008, 15:55 | ||||
У тебя будет файл: config.php - в котором хранится вся информация о настройках системы в том числе и информация о хосте пароле и имени пользователе базы данных. Этот файл нужен для того чтобы тебе не лапатить кучу кода в поисках того какая переменная отвичеет за ту то и туту настройку и где она обьявлена а сразу знать где её искать. Это вопрос из области правильного оформления кода. Далее ты этот файл подключаешь туда где он тебе может понадобиться в данном случае в файл устанавливающий соёдинение с БД. Так как в файле могут содержаться множество неиспользуемых одновременно настроек то подходим к разделению настроек на несколько файлов. Самый простой пример настройки для администраторской части и настройки для пользовательской. Это вопрос уже из области правильного проектирования системы.
Противоречит концепции ООП. |
| Автор: DeamonShan 6.5.2008, 16:00 | ||||
| необязательно *.cfg можно и по другому назвать файл, например, config.inc или как то по другому, но пусть будет config.cfg содержимое этого файла для начало будет таковым:
и твой скрипт, например, script.php:
при этом оба файла должны быть в одной директории еще интереснее когда функции писать тоже в отдельный файл)))) |
| Автор: Feldmarschall 6.5.2008, 16:03 |
| fortrun, лучше про шаблоны почитай. все, что здесь обсуждается - выеденного яйца не стоит |
| Автор: ReactOS 6.5.2008, 16:07 | ||
лезть в такие подробности пока не буду, но есть вопросы по этому поводу: А в каких случаях нужно использовать ООП? Ведь, можно построить достаточно классные по функциональности сайты и без ООП? К тому же, PHP является интерпретатором, по ходу, чем больше ненужных строк, тем медленее выполняется работа скрипта, хотя возможно это экономия на спичках... Просто недавно наткнулся на код подключения к серверу баз даных, какой-то навороченный и на ООП как раз, по-моему такой код будет медленнее выполняться, чем просто:
ИМХО 2-е строчки, и ни каких проблем Хотя, я може чего-то и не понимаю Добавлено @ 16:09 извините, с CMS ушел как-раз ради обучения, поэтому шаг назад делать не будем только вперед! Добавлено @ 16:12 А для чего нужно правильное проектирование? Для заказчика? А разве ему интересно, как система устроена? Разве ему не нужен банально результат? Даже, если код будет корявым или простым? |
| Автор: DeamonShan 6.5.2008, 16:24 |
| помоему правильное проектирования кода нужно только для тебя самого, чтобы сам не запутался))))) попробуй написать пару скриптов с облаком переменных... потом узнаешь))) и задумаешься о правильной конструкции скрипта)) |
| Автор: ReactOS 6.5.2008, 16:27 | ||
|
| Автор: DeamonShan 6.5.2008, 16:30 |
| по поводу классов: у тебя стоит MySQL так? ты пишешь скрипт именно под эту БД... и если тебе придется перенести свой сайт на другой сервак, где нет MySQL, а стоит, например, PosgreSQL тебе придется переписать скрипт))))))) а классы позволяют этого избежать... просто в соответсвии с БД подключаешь нужныж класс БД.... извеняюсь за свой русский)) |
| Автор: Feldmarschall 6.5.2008, 16:30 | ||
глупость какая-то. я говорил не о CMS, а о шаблонах. какие-то шаги вперед-назад. судя по всему, ты не понимаешь, что такое шаблон. поэтому выпорлни мою рекомендацию - почитай, что это такое и зачем нужно Добавлено через 2 минуты и 4 секунды DeamonShan, опять эти бредни. не позволяют классы этого избежать. попробуй, избеги - а потом рассказывай эти сказки. 50% твоих ответов на форуме - о вещах, в которых ты вообще ничего не смыслишь. попробуй писать только о том, что действительно знаешь. |
| Автор: ReactOS 6.5.2008, 16:40 | ||
согласен, возможно не пониманию! сейчас немного начал понимать вроде про что ты имел в виду... т.е. создание шаблонов своими руками, ну т.е. как раз правильное проектирование! Насколько я помню, Shop-Script как раз основан на шаблонах, там как раз много *.inc файлов )
обязательно! т.к. я - обязан это знать ради себя! |
| Автор: Feldmarschall 6.5.2008, 16:48 |
| в *.inc файлах может быть всё, что угодно. Шаблон - это способ выводить оформление сайта независимо от выводимой информации. Сейчас твоя функция коннект выведет сообщение об ошибке либо просто в чистое поле, либо - что скорее всего - в огрызок дизайна, с шапкой, но уже без ноги. А на нормальном сайте желательно, чтобы сообщение об ошибке вывелось в нормальном оформлении. |
| Автор: ReactOS 6.5.2008, 16:52 | ||
+1! Как в математике - четко, коротко и ясно А я все не мог сказать, и наговорил кучу слов |