![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sgrey |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
есть класс который должен подключаться к базе и делать там определённые вещи. ->
запускаю его из другого класса, откуда берутся данные для добавления в базу, вот этой функцией.
выскакивает ошибка
во-первых имя пользователя не правильное, не знаю откуда оно берётся там..... (такое стоит на форуме, который находится в другой папке на локалхосте). во-вторых пароль к базе имеется и он прописан в конфиге откуда берутся данные. в-третьих если просто в чистом файле написать
то всё прекрасно работает и можно делать выборки, добавлять данные, вобщем всё что надо. что не так с классом? ![]() ![]() Это сообщение отредактировал(а) sgrey - 18.3.2010, 08:36 |
||||||||
|
|||||||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
переменная $INFO не доступна из метода make_connection. так своя область видимости. однако, не стоит принимать поспешных решений и делать $INFO глобальной.
вариант 0. передавать $INFO параметром в make_connection вариант 1. брать данные о подключение не из переменной $INFO, а из функции, которая вернет массив с параметрами подключения(функции не ограничены областью видимости переменной) или из объекта-синглтона вариант 2. сделать сам объект "подкючение" синглтоном. если, конечно, у тебя только одно подключение к единственной БД. в таком случае, можно инициализировать/передавать $INFO любым из указанных выше способов. все равно это надо будет сделать только раз. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
Ну и? Что это за переменные и откуда они берутся? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
sgrey |
|
||||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
они находятся в конфиг файле который включается в класс Добавлено через 6 минут и 54 секунды
хм..... $INFO находится в конфиг файле
мне его внутри класса включать чтоли? прописал данные прям в функцию
теперь выдали такую ошибку
т.е. в той же строке. |
||||||||||||
|
|||||||||||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
||||
|
||||
sgrey |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
спасибо, теперь работает. только теперь ошибка в другом месте ![]() ![]()
мне кажется он ругается вот на эту функцию.... она единственная обращается к этому классу в данный момент....
и хотелось бы использовать переменную из вложенного файла, насколько я понял - если инклуд сделать вне класса, то внутри данные оттуда не видны будут? такое чувство что весь код неправильный ( Это сообщение отредактировал(а) sgrey - 18.3.2010, 18:07 |
||||||
|
|||||||
sgrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
разобрался с подключением к базе
![]() только вот хотелось бы знать что делать с инклудом и почему переменные находятся вне видимости класса........ Это сообщение отредактировал(а) sgrey - 19.3.2010, 02:21 |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
Потому что их нужно ему передавать.
или так
Соответственно конструктор класса или метод connect() должны их принимать и использовать для подключения. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
sgrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
т.е. язык построен так, что если есть функция соединения с базой - нельзя использовать переменные которые не входят в эту функцию? интересно..... пошёл писать хендлер тогда для этого ( |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
Язык построен так, что можно все. Но использовать глобальные переменные не рекомендуется во избежание проблем. Лучше их передавать явно. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
sgrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 15.4.2006 Репутация: нет Всего: 4 |
да я вот как раз и думаю про реализацию. думаю по совету skyboy либо синглтон, либо абстрактный класс сделать и наследовать его в этот.... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |