The error message is clear, it comes from this code in PostgreSQL's libpq
:
#ifndef USE_SSL
switch [conn->sslmode[0]]
{
case 'a': /* "allow" */
case 'p': /* "prefer" */
/*
* warn user that an SSL connection will never be negotiated
* since SSL was not compiled in?
*/
break;
case 'r': /* "require" */
case 'v': /* "verify-ca" or "verify-full" */
conn->status = CONNECTION_BAD;
printfPQExpBuffer[&conn->errorMessage,
libpq_gettext["sslmode value \"%s\" invalid when SSL support is not compiled in\n"],
conn->sslmode];
return false;
}
#endif
That code is only compiled when PostgreSQL was not configured --with-openssl
.
You can verify that with pg_config
[if you didn't install PostgreSQL from source, you may have to install a "dev" or "devel" package for that]:
pg_config --configure
The output will not contain --with-openssl
.
It may well be that PHP is built with SSL support, but PostgreSQL isn't.
Since you
say that PostgreSQL is compiled with SSL support, one explanation for the behavior is that there are several PostgreSQL installations on your machine, and PHP uses one that is build without SSL support. Try and find all files called libpq.*
on your system!
Việc kết nối tới PostgreSQL Database để lấy dữ liệu là rất dễ dàng. Với PHP có 2 cách để kết nối như sau:
Nội dung chính
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
- Bài viết nổi bật cùng chuyên mục
- Giới thiệu
Nội dung chính
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
- Bài viết nổi bật cùng chuyên mục
- Giới thiệu
Nội dung chính
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
Nội dung chính
- 1. Sử dụng hàm pg_connect[] của PHP
- Kích hoạt Extension pgsql của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
- 2. Sử dụng class PDO của PHP
- Kết nối tới PostgreSQL Database sử dụng hàm PDO
1. Sử dụng hàm pg_connect[] của PHP
Kích hoạt Extension pgsql của PHP
Để sử dụng hàm được hàm pg_connect[] của PHP chúng ta cần kích hoạt 1 extension của PHP là: pgsql
Sửa file php.ini và mở comment của dòng sau:
– Trên Windows:
extension=php_pgsql.dll
– Trên Linux:
extension=pgsql.so
Sau đó restart lại php-fpm hoặc apache để cập nhật config.
Kiểm tra php đã có kích hoạt module pgsql chưa? Chúng ta sử dụng command sau:
php -m | grep pgsql
Nếu kết quả như sau tức là module pgsql của PHP đã hoạt động.
Kết nối tới PostgreSQL Database sử dụng hàm pg_connect[]
Tham khảo đoạn code sau: