Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Стандартная ситуация:
Имеется несколько php страниц. На каждой из которых есть соединение с бд, далее есть несколько запросов данных из бд. Все эти запросы данных используют одно и тоже соединение.
Но стоит добавить на страницу какую-либо функцию, использующую запрос к бд, то внутри функции соединение установленное ранее не видно, приходится в начале каждой функции по новой соединяться с бд.
Допустим на странице 50 функций, необходимо соединиться с бд 50 раз? это нормально?
Но мб есть какойто метод использования функций чтобы соединение было видно?
Champion
Отправлено: 14 Августа, 2010 - 11:40:01
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Например, дескриптор соединения(штука, которую возвращает ***_connect()) можно передать в функцию параметром.
Rooner
Отправлено: 14 Августа, 2010 - 12:28:22
Посетитель
Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Спасибо, попробую разобраться, если возникнут вопросы, напишу.
Uchkuma
Отправлено: 14 Августа, 2010 - 12:51:01
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
А нельзя global $descriptor; внутри функции сделать?
Rooner
Отправлено: 14 Августа, 2010 - 12:54:01
Посетитель
Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Оказывается что если есть соединение на какой-либо странице, то после него все запросы во всех функциях РАБОТАЮТ. Так что в моем случае можно обойтись без передачи дескриптора соединения. У меня была ошибка в другом месте.
JustUserR
Отправлено: 15 Августа, 2010 - 01:07:22
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Uchkuma пишет:
А нельзя global $descriptor; внутри функции сделать?
Для работы внутри функции с глобальными объектами возможно не только использование оператора global - но и доступ к суперглобальному массиву $GLOBALS которые позволяет одновременной работаь с локальной и глобальной переменной внутри одной функции - с использованем одинакового идентификатора
Кроме того если внутри функции потребуется полностью очистить некоторую глобальную переменную то вариант с $GLOBALS будет наиболее предпочтительным - поскольку применении операции очистке к локальной ссылке генерируемой операцией global приведет только к удалению самой ссылочной связи - а не реального глобального объекта
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.