PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tại sao lại cần putenv () trên một biến môi trường đã được xác định?

Lý do là:

Các giá trị môi trường bạn nhận được từ getenv()[PHP] (hàm php) khác với môi trường bạn truy vấn bằng getenv()[C] (hàm C lib). Cái gì getenv()[PHP] đang kiểm tra với sapi đã đăng ký để tìm khớp ( http ://lxr.php.net/xref/PHP_5_6/ext/standard/basic_functions.c#3999 ).

Apache2 sapi thực hiện điều này thông qua ngữ cảnh môi trường riêng của nó ( http://lxr.php.net/xref/PHP_5_6/sapi/apache2handler/sapi_apache2.c#253 ), không phải là môi trường OS tiêu chuẩn từ chính quá trình apache.

CHỈ khi không có kết quả phù hợp nào được tìm thấy, nó sẽ kiểm tra tại môi trường của quá trình thực tế. Vì vậy, đây là lý do tại sao getenv()[PHP] trả về một giá trị, nhưng getenv()[C] không.

Bây giờ, "hack" cũng đơn giản:putenv()[PHP] , lưu trữ khóa / giá trị đã cho trong môi trường của quá trình đang chạy, đó là lý do tại sao có thể tìm thấy khóa / giá trị này sau này bằng 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. PostgreSQL:Xuất dữ liệu từ SQL Server 2008 R2 sang PostgreSQL 9.5

  2. Làm thế nào để cải thiện tốc độ truy vấn?

  3. Làm cách nào để kích hoạt tiện ích mở rộng không phù hợp trên một mô hình đã tồn tại

  4. Làm cách nào để chỉ định cơ sở dữ liệu đang hoạt động hiện tại cho tập lệnh khởi tạo của vùng chứa postgres docker?

  5. Tạo bí danh hàng loạt?