Hướng dẫn dùng postgres sslmode trong PHP

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:

Chủ Đề