PostgreSQL - Antarmuka PHP

Instalasi

Ekstensi PostgreSQL diaktifkan secara default di rilis terbaru PHP 5.3.x. Dimungkinkan untuk menonaktifkannya dengan menggunakan--without-pgsqlpada waktu kompilasi. Anda masih dapat menggunakan perintah yum untuk menginstal antarmuka PHP-PostgreSQL -

yum install php-pgsql

Sebelum Anda mulai menggunakan antarmuka PHP PostgreSQL, cari file pg_hba.conf file di direktori instalasi PostgreSQL Anda dan tambahkan baris berikut -

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

Anda dapat memulai / memulai ulang server postgres, jika tidak berjalan, gunakan perintah berikut -

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

Pengguna Windows harus mengaktifkan php_pgsql.dll untuk menggunakan ekstensi ini. DLL ini disertakan dengan distribusi Windows dalam rilis terbaru PHP 5.3.x

Untuk instruksi instalasi terperinci, silakan periksa tutorial PHP kami dan situs resminya.

API Antarmuka PHP

Berikut ini adalah rutinitas PHP yang penting, yang dapat mencukupi kebutuhan Anda untuk bekerja dengan database PostgreSQL dari program PHP Anda. Jika Anda mencari aplikasi yang lebih canggih, Anda dapat melihat dokumentasi resmi PHP.

No. S. API & Deskripsi
1

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

Ini membuka koneksi ke database PostgreSQL yang ditentukan oleh connection_string.

Jika PGSQL_CONNECT_FORCE_NEW diteruskan sebagai connect_type, maka koneksi baru dibuat jika panggilan kedua ke pg_connect (), meskipun connection_string identik dengan koneksi yang ada.

2

bool pg_connection_reset ( resource $connection )

Rutinitas ini mengatur ulang koneksi. Ini berguna untuk pemulihan kesalahan. Mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

3

int pg_connection_status ( resource $connection )

Rutinitas ini mengembalikan status koneksi yang ditentukan. Menampilkan PGSQL_CONNECTION_OK atau PGSQL_CONNECTION_BAD.

4

string pg_dbname ([ resource $connection ] )

Rutinitas ini mengembalikan nama database yang diberikan sumber koneksi PostgreSQL.

5

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

Ini mengajukan permintaan untuk membuat pernyataan yang disiapkan dengan parameter yang diberikan dan menunggu sampai selesai.

6

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

Rutin ini mengirimkan permintaan untuk mengeksekusi pernyataan yang telah disiapkan dengan parameter yang diberikan dan menunggu hasilnya.

7

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

Rutinitas ini mengeksekusi query pada koneksi database yang ditentukan.

8

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

Rutinitas ini mengambil satu baris data dari hasil yang terkait dengan sumber daya hasil yang ditentukan.

9

array pg_fetch_all ( resource $result )

Rutinitas ini mengembalikan larik yang berisi semua baris (catatan) dalam sumber daya hasil.

10

int pg_affected_rows ( resource $result )

Rutinitas ini mengembalikan jumlah baris yang dipengaruhi oleh kueri INSERT, UPDATE, dan DELETE.

11

int pg_num_rows ( resource $result )

Rutinitas ini mengembalikan jumlah baris dalam sumber hasil PostgreSQL misalnya jumlah baris yang dikembalikan oleh pernyataan SELECT.

12

bool pg_close ([ resource $connection ] )

Rutinitas ini menutup koneksi non-persisten ke database PostgreSQL yang terkait dengan sumber koneksi yang diberikan.

13

string pg_last_error ([ resource $connection ] )

Rutinitas ini mengembalikan pesan kesalahan terakhir untuk koneksi yang diberikan.

14

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

Rutinitas ini mengesampingkan literal untuk dimasukkan ke dalam bidang teks.

15

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

Rutinitas ini lolos dari string untuk melakukan kueri database.

Menghubungkan ke Database

Kode PHP berikut menunjukkan cara menyambungkan ke database yang ada di mesin lokal dan akhirnya objek koneksi database akan dikembalikan.

<?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";
   }
?>

Sekarang, mari kita jalankan program yang diberikan di atas untuk membuka database kita testdb: jika database berhasil dibuka, maka akan muncul pesan berikut -

Opened database successfully

Buat Tabel

Program PHP berikut akan digunakan untuk membuat tabel dalam database yang dibuat sebelumnya -

<?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);
?>

Ketika program yang diberikan di atas dijalankan, itu akan membuat tabel PERUSAHAAN di Anda testdb dan itu akan menampilkan pesan berikut -

Opened database successfully
Table created successfully

Operasi INSERT

Program PHP berikut menunjukkan bagaimana kita dapat membuat catatan dalam tabel PERUSAHAAN kita yang dibuat pada contoh di atas -

<?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);
?>

Ketika program yang diberikan di atas dijalankan, itu akan membuat catatan yang diberikan dalam tabel PERUSAHAAN dan akan menampilkan dua baris berikut -

Opened database successfully
Records created successfully

PILIH Operasi

Program PHP berikut menunjukkan bagaimana kita dapat mengambil dan menampilkan catatan dari tabel PERUSAHAAN kita yang dibuat pada contoh di atas -

<?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);
?>

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut. Ingatlah bahwa bidang dikembalikan dalam urutan yang mereka gunakan saat membuat tabel.

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

UPDATE Operasi

Kode PHP berikut menunjukkan bagaimana kita dapat menggunakan pernyataan UPDATE untuk memperbarui catatan apa pun dan kemudian mengambil dan menampilkan catatan yang diperbarui dari tabel PERUSAHAAN kita -

<?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);
?>

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut -

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

HAPUS Operasi

Kode PHP berikut menunjukkan bagaimana kita dapat menggunakan pernyataan DELETE untuk menghapus catatan apa pun dan kemudian mengambil dan menampilkan catatan yang tersisa dari tabel PERUSAHAAN kita -

<?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);
?>

Ketika program yang diberikan di atas dijalankan, itu akan menghasilkan hasil sebagai berikut -

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