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