PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego putenv() jest potrzebne na już zdefiniowanej zmiennej środowiskowej?

Powód jest taki:

Wartości środowiskowe, które otrzymujesz z getenv()[PHP] (funkcja php) są inne niż środowisko, do którego pytasz za pomocą getenv()[C] (funkcja C lib). Co getenv()[PHP] sprawdza, czy u zarejestrowanej sapi nie ma dopasowania (http ://lxr.php.net/xref/PHP_5_6/ext/standard/basic_functions.c#3999 ).

Apache2 sapi robi to poprzez własny kontekst środowiska (http://lxr.php.net/xref/PHP_5_6/sapi/apache2handler/sapi_apache2.c#253 ), a nie standardowe środowisko systemu operacyjnego z samego procesu Apache.

TYLKO, gdy nie zostanie znalezione żadne dopasowanie, sprawdzi środowisko rzeczywistego procesu. Dlatego właśnie getenv()[PHP] zwraca wartość, ale getenv()[C] nie.

Teraz "hack" jest również prosty:putenv()[PHP] , przechowuje dany klucz/wartość w środowisku uruchomionego procesu, dlatego można go później znaleźć za pomocą getenv()[c] .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakie są zalety i wady wykonywania obliczeń w sql vs. w Twojej aplikacji?

  2. Dzielenie PostgreSQL przez zero przy zamówieniu

  3. Zwróć tylko wartości liczbowe z kolumny bazy danych PostgreSQL

  4. W Postgresql wymusza unikalność kombinacji dwóch kolumn

  5. Całkowite kopiowanie tabeli postgres za pomocą SQL