Hướng dẫn kết nối tới PostgreSQL Database với PHP


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:

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:

<?php
/**
 * @author vinasupport.com
 */
// connect to a database 
$dbConn = pg_connect("host=<host> port=<port> dbname=<db_name> user=<db_user> password=<db_pass>");
if (!$dbConn) {
    echo "An error occurred.\n";
    exit;
}

// Query data
$result = pg_query($dbConn, 'SELECT * FROM hr_employee');
if (!$result) {
    echo "An error occurred.\n";
    exit;
}

// Show value
while ($row = pg_fetch_assoc($result)) {
    var_dump($row);
}

Với:

  • <host>: Là hostname hoặc địa chỉ IP của PostgreSQL Databasee
  • <port>: PostgreSQL Port, mặc định là 5432
  • <db_name>: Database name
  • <db_user>: Database Username
  • <db_pass>: Mật khẩu của Database Username

2. Sử dụng class PDO của PHP

Hãy chắc chắn rằng PDO module của PHP đã được kích hoạt. Nếu không hãy sửa fle php.ini và bỏ comment dòng sau:

– Trên Windows:

extension=php_pdo_pgsql.dll

– Trên Linux là mặc định được kích hoạt

Kết nối tới PostgreSQL Database sử dụng hàm PDO

Tham khảo đoạn code sau:

<?php
/**
 * @author vinasupport.com
 */
// PDO Options
$options = [
    \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
    \PDO::ATTR_EMULATE_PREPARES   => false,
];

// Query string
$dsn = "pgsql:host=<host>;dbname=<db_name>";

try {
    // Create pdo connection
    $myPdo = new \PDO($dsn, <db_user>, <db_pass>, $options);
} catch (\PDOException $e) {
    throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

// Query
$result = $myPdo->query("SELECT * FROM hr_employee");

// Loop query
foreach ($result as $key => $row) {
    print "{$row['name']}: {$row['gender']}<br />";    
}

Nguồn: vinasupport.com

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web