глобальная переменная php - PullRequest
       29

глобальная переменная php

0 голосов
/ 04 сентября 2011

Ну, я относительно новичок в php, но раньше работал над веб-приложениями.В настоящее время я пишу код на php и запускаю Apache httpd.Я использую БД PostgreSql.

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

Возможно ли в php установить переменную, одинаковую для всех пользователей.

Например.Я хочу сохранить объект соединения с БД в переменной и использовать его всякий раз, когда захочу.

Эта переменная выйдет из области видимости после остановки Apache Server.

Ответы [ 3 ]

2 голосов
/ 04 сентября 2011

Смарми ответь первым.Да, ты можешь.Это называется базой данных; -)

Если серьезно, Apache + PHP (без чего-либо еще) - не лучший вариант, если вы пытаетесь сохранить значения в запросах.Обычно, если такой тип функциональности необходим, это делается либо через жесткий файл, либо через соединение с базой данных, которое обновляется каждый раз при запуске запроса.Очевидно, что ни одного из них недостаточно для сохранения совершенно отдельного соединения.

Общее правило - один запрос на одно соединение.Есть способы сохранить соединения, чтобы уменьшить это число, но pg_connect, который должен был стать каноническим способом решения этой проблемы, кажется невероятно нарушенным.Вы можете вместо этого посмотреть на pgbouncer или pgpool.Я не знаю, как драйвер PDO обрабатывает ATTR_PERSISTENT для Postgre.

0 голосов
/ 24 ноября 2014

PHP SUPER GLOBAL ВРЕМЕНИ И ВРЕМЯ ЖИЗНИ

  • $GLOBALS Содержит список всех глобальных переменных в скрипте
    (исключая суперглобальные переменные)).• $ _GET Содержит список всех полей формы
    , отправленных браузером с помощью запроса GET.
  • $_POST Содержит список
    всех полей формы, отправленныхв браузере используется запрос POST.
  • $_COOKIE содержит список всех файлов cookie, отправленных браузером.
  • $_REQUEST Содержит всеключи и значения в массивах $ _GET, $ _POST и $ _COOKIE.
  • $_FILES Содержит список всех файлов, загруженных браузером.
  • $_SESSION Позволяет хранить и извлекать постоянные переменные сеанса для текущего браузера.
  • $_SERVER Содержит информацию о среде сервера, такую ​​как имя файла запущенного сценария, иIP-адрес браузера.
  • $_ENV содержит список переменных среды, переданных в PHP.Они могут включать переменные, предоставляемые оболочкой, а также переменные CGI.
0 голосов
/ 04 сентября 2011

Необходимость часто подключаться к БД - это общая черта веб-приложений, написанных на PHP, поэтому функция oci_pconnect () использует постоянный кеш соединений, который можно повторно использовать при разных запросах скрипта / страницы (поэтомунакладные расходы на соединение с БД оплачиваются только один раз за дочерний процесс Apache или процесс PHP) - см. Обработка соединения с БД PHP

Существует ли какая-либо конкретная причина, по которой вы хотите сделатьработа по управлению пул соединений БД самостоятельно?Если вы абсолютно одержимы этой идеей, то вы могли бы использовать что-то вроде сегмента общей памяти для хранения объектов данных, которые должны быть разделены между процессами - но тогда вам нужна система мьютекса, чтобы избежать смертив зависимости от состояния гонки при изменении общих данных - «сторожевой таймер» для очистки, когда процесс умирает без надлежащего освобождения мьютекса и т. д.

...