PostgreSQL - Giao diện PHP

Cài đặt

Phần mở rộng PostgreSQL được bật theo mặc định trong các phiên bản mới nhất của PHP 5.3.x. Có thể vô hiệu hóa nó bằng cách sử dụng--without-pgsqltại thời điểm biên dịch. Bạn vẫn có thể sử dụng lệnh yum để cài đặt giao diện PHP -PostgreSQL -

yum install php-pgsql

Trước khi bạn bắt đầu sử dụng giao diện PHP PostgreSQL, hãy tìm pg_hba.conf trong thư mục cài đặt PostgreSQL của bạn và thêm dòng sau:

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5

Bạn có thể khởi động / khởi động lại máy chủ postgres, trong trường hợp nó không chạy, bằng cách sử dụng lệnh sau:

[root@host]# service postgresql restart
Stopping postgresql service:                               [  OK  ]
Starting postgresql service:                               [  OK  ]

Người dùng Windows phải bật php_pgsql.dll để sử dụng tiện ích mở rộng này. DLL này được bao gồm trong các bản phân phối Windows trong các bản phát hành mới nhất của PHP 5.3.x

Để biết hướng dẫn cài đặt chi tiết, vui lòng xem hướng dẫn PHP của chúng tôi và trang web chính thức của nó.

API giao diện PHP

Sau đây là các quy trình PHP quan trọng, có thể đáp ứng yêu cầu của bạn để làm việc với cơ sở dữ liệu PostgreSQL từ chương trình PHP của bạn. Nếu bạn đang tìm kiếm một ứng dụng phức tạp hơn, thì bạn có thể xem tài liệu chính thức của PHP.

S. Không. API & Mô tả
1

resource pg_connect ( string $connection_string [, int $connect_type ] )

Thao tác này sẽ mở ra một kết nối đến cơ sở dữ liệu PostgreSQL được chỉ định bởi connection_string.

Nếu PGSQL_CONNECT_FORCE_NEW được chuyển dưới dạng connect_type, thì một kết nối mới sẽ được tạo trong trường hợp có cuộc gọi thứ hai tới pg_connect (), ngay cả khi connection_string giống hệt với kết nối hiện có.

2

bool pg_connection_reset ( resource $connection )

Quy trình này đặt lại kết nối. Nó rất hữu ích cho việc khôi phục lỗi. Trả về TRUE khi thành công hoặc FALSE nếu thất bại.

3

int pg_connection_status ( resource $connection )

Quy trình này trả về trạng thái của kết nối được chỉ định. Trả về PGSQL_CONNECTION_OK hoặc PGSQL_CONNECTION_BAD.

4

string pg_dbname ([ resource $connection ] )

Quy trình này trả về tên của cơ sở dữ liệu mà tài nguyên kết nối PostgreSQL đã cho.

5

resource pg_prepare ([ resource $connection ], string $stmtname, string $query )

Thao tác này sẽ gửi yêu cầu tạo một câu lệnh đã chuẩn bị sẵn với các tham số đã cho và chờ hoàn thành.

6

resource pg_execute ([ resource $connection ], string $stmtname, array $params )

Quy trình này sẽ gửi một yêu cầu thực hiện một câu lệnh đã chuẩn bị sẵn với các tham số đã cho và đợi kết quả.

7

resource pg_query ([ resource $connection ], string $query )

Quy trình này thực hiện truy vấn trên kết nối cơ sở dữ liệu được chỉ định.

số 8

array pg_fetch_row ( resource $result [, int $row ] )

Quy trình này tìm nạp một hàng dữ liệu từ kết quả được liên kết với tài nguyên kết quả được chỉ định.

9

array pg_fetch_all ( resource $result )

Quy trình này trả về một mảng chứa tất cả các hàng (bản ghi) trong tài nguyên kết quả.

10

int pg_affected_rows ( resource $result )

Quy trình này trả về số lượng hàng bị ảnh hưởng bởi các truy vấn INSERT, UPDATE và DELETE.

11

int pg_num_rows ( resource $result )

Quy trình này trả về số hàng trong tài nguyên kết quả PostgreSQL, ví dụ như số hàng được trả về bởi câu lệnh SELECT.

12

bool pg_close ([ resource $connection ] )

Quy trình này đóng kết nối không liên tục đến cơ sở dữ liệu PostgreSQL được liên kết với tài nguyên kết nối đã cho.

13

string pg_last_error ([ resource $connection ] )

Quy trình này trả về thông báo lỗi cuối cùng cho một kết nối nhất định.

14

string pg_escape_literal ([ resource $connection ], string $data )

Quy trình này thoát khỏi một ký tự để chèn vào trường văn bản.

15

string pg_escape_string ([ resource $connection ], string $data )

Quy trình này thoát khỏi một chuỗi để truy vấn cơ sở dữ liệu.

Kết nối với Cơ sở dữ liệu

Đoạn mã PHP sau đây cho thấy cách kết nối với cơ sở dữ liệu hiện có trên máy cục bộ và cuối cùng một đối tượng kết nối cơ sở dữ liệu sẽ được trả về.

<?php
   $host        = "host = 127.0.0.1";
   $port        = "port = 5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }
?>

Bây giờ, chúng ta hãy chạy chương trình đã cho ở trên để mở cơ sở dữ liệu của chúng ta testdb: nếu cơ sở dữ liệu được mở thành công, thì nó sẽ đưa ra thông báo sau:

Opened database successfully

Tạo bảng

Chương trình PHP sau sẽ được sử dụng để tạo một bảng trong cơ sở dữ liệu đã tạo trước đó:

<?php
   $host        = "host = 127.0.0.1";
   $port        = "port = 5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }
   
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
   } else {
      echo "Table created successfully\n";
   }
   pg_close($db);
?>

Khi chương trình đã cho ở trên được thực thi, nó sẽ tạo bảng COMPANY trong testdb và nó sẽ hiển thị các thông báo sau:

Opened database successfully
Table created successfully

INSERT hoạt động

Chương trình PHP sau đây cho thấy cách chúng ta có thể tạo các bản ghi trong bảng COMPANY của chúng ta được tạo trong ví dụ trên:

<?php
   $host        = "host=127.0.0.1";
   $port        = "port=5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
   } else {
      echo "Records created successfully\n";
   }
   pg_close($db);
?>

Khi chương trình đã cho ở trên được thực thi, nó sẽ tạo các bản ghi đã cho trong bảng COMPANY và sẽ hiển thị hai dòng sau:

Opened database successfully
Records created successfully

CHỌN hoạt động

Chương trình PHP sau đây cho thấy cách chúng tôi có thể tìm nạp và hiển thị các bản ghi từ bảng COMPANY của chúng tôi được tạo trong ví dụ trên:

<?php
   $host        = "host = 127.0.0.1";
   $port        = "port = 5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = ". $row[0] . "\n";
      echo "NAME = ". $row[1] ."\n";
      echo "ADDRESS = ". $row[2] ."\n";
      echo "SALARY =  ".$row[4] ."\n\n";
   }
   echo "Operation done successfully\n";
   pg_close($db);
?>

Khi chương trình đã cho ở trên được thực thi, nó sẽ cho kết quả như sau. Lưu ý rằng các trường được trả về theo trình tự mà chúng đã được sử dụng trong khi tạo bảng.

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  20000

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000

Operation done successfully

CẬP NHẬT Hoạt động

Đoạn mã PHP sau đây cho thấy cách chúng ta có thể sử dụng câu lệnh UPDATE để cập nhật bất kỳ bản ghi nào, sau đó tìm nạp và hiển thị các bản ghi đã cập nhật từ bảng COMPANY của chúng ta -

<?php
   $host        = "host=127.0.0.1";
   $port        = "port=5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } else {
      echo "Record updated successfully\n";
   }
   
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = ". $row[0] . "\n";
      echo "NAME = ". $row[1] ."\n";
      echo "ADDRESS = ". $row[2] ."\n";
      echo "SALARY =  ".$row[4] ."\n\n";
   }
   echo "Operation done successfully\n";
   pg_close($db);
?>

Khi chương trình đã cho ở trên được thực thi, nó sẽ tạo ra kết quả sau:

Opened database successfully
Record updated successfully
ID = 2
NAME = Allen
ADDRESS = 25
SALARY =  15000

ID = 3
NAME = Teddy
ADDRESS = 23
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = 25
SALARY =  65000

ID = 1
NAME = Paul
ADDRESS = 32
SALARY =  25000

Operation done successfully

Thao tác DELETE

Đoạn mã PHP sau đây cho thấy cách chúng ta có thể sử dụng câu lệnh DELETE để xóa bất kỳ bản ghi nào, sau đó tìm nạp và hiển thị các bản ghi còn lại từ bảng COMPANY của chúng ta -

<?php
   $host        = "host = 127.0.0.1";
   $port        = "port = 5432";
   $dbname      = "dbname = testdb";
   $credentials = "user = postgres password=pass123";

   $db = pg_connect( "$host $port $dbname $credentials"  );
   if(!$db) {
      echo "Error : Unable to open database\n";
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } else {
      echo "Record deleted successfully\n";
   }
   
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret) {
      echo pg_last_error($db);
      exit;
   } 
   while($row = pg_fetch_row($ret)) {
      echo "ID = ". $row[0] . "\n";
      echo "NAME = ". $row[1] ."\n";
      echo "ADDRESS = ". $row[2] ."\n";
      echo "SALARY =  ".$row[4] ."\n\n";
   }
   echo "Operation done successfully\n";
   pg_close($db);
?>

Khi chương trình đã cho ở trên được thực thi, nó sẽ tạo ra kết quả sau:

Opened database successfully
Record deleted successfully
ID = 3
NAME = Teddy
ADDRESS = 23
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = 25
SALARY =  65000

ID = 1
NAME = Paul
ADDRESS = 32
SALARY =  25000

Operation done successfully