PostgreSQL - PHP Arayüzü

Kurulum

PostgreSQL uzantısı, PHP 5.3.x'in en son sürümlerinde varsayılan olarak etkindir. Kullanarak devre dışı bırakmak mümkündür.--without-pgsqlderleme zamanında. Yine de PHP -PostgreSQL arayüzünü kurmak için yum komutunu kullanabilirsiniz -

yum install php-pgsql

PHP PostgreSQL arayüzünü kullanmaya başlamadan önce, pg_hba.conf PostgreSQL kurulum dizininizdeki dosya ve aşağıdaki satırı ekleyin -

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

Çalışmıyorsa, aşağıdaki komutu kullanarak postgres sunucusunu başlatabilir / yeniden başlatabilirsiniz -

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

Windows kullanıcıları bu uzantıyı kullanmak için php_pgsql.dll'yi etkinleştirmelidir. Bu DLL, PHP 5.3.x'in en son sürümlerinde Windows dağıtımlarına dahil edilmiştir.

Ayrıntılı kurulum talimatları için lütfen PHP eğitimimize ve resmi web sitesine bakın.

PHP Arayüzü API'leri

Aşağıdakiler, PHP programınızdan PostgreSQL veritabanıyla çalışma gereksiniminizi karşılayabilecek önemli PHP rutinleridir. Daha karmaşık bir uygulama arıyorsanız, PHP resmi belgelerine bakabilirsiniz.

S. No. API ve Açıklama
1

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

Bu, connection_string ile belirtilen bir PostgreSQL veritabanına bir bağlantı açar.

PGSQL_CONNECT_FORCE_NEW, bağlantı_türü olarak aktarılırsa, bağlantı_dizesi mevcut bir bağlantıyla aynı olsa bile, pg_connect () 'e ikinci bir çağrı olması durumunda yeni bir bağlantı oluşturulur.

2

bool pg_connection_reset ( resource $connection )

Bu rutin bağlantıyı sıfırlar. Hata giderme için kullanışlıdır. Başarı durumunda TRUE, başarısızlık durumunda FALSE döndürür.

3

int pg_connection_status ( resource $connection )

Bu rutin, belirtilen bağlantının durumunu döndürür. PGSQL_CONNECTION_OK veya PGSQL_CONNECTION_BAD döndürür.

4

string pg_dbname ([ resource $connection ] )

Bu yordam, verilen PostgreSQL bağlantı kaynağının veritabanının adını döndürür.

5

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

Bu, verilen parametrelerle hazırlanmış bir ifade oluşturma talebinde bulunur ve tamamlanmasını bekler.

6

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

Bu rutin, verilen parametrelerle hazırlanmış bir ifadenin yürütülmesi için bir istek gönderir ve sonucu bekler.

7

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

Bu yordam, sorguyu belirtilen veritabanı bağlantısında yürütür.

8

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

Bu rutin, belirtilen sonuç kaynağıyla ilişkili sonuçtan bir satır veri alır.

9

array pg_fetch_all ( resource $result )

Bu rutin, sonuç kaynağındaki tüm satırları (kayıtları) içeren bir dizi döndürür.

10

int pg_affected_rows ( resource $result )

Bu rutin INSERT, UPDATE ve DELETE sorgularından etkilenen satırların sayısını döndürür.

11

int pg_num_rows ( resource $result )

Bu yordam, bir PostgreSQL sonuç kaynağındaki satır sayısını, örneğin SELECT ifadesi tarafından döndürülen satır sayısını döndürür.

12

bool pg_close ([ resource $connection ] )

Bu yordam, verilen bağlantı kaynağıyla ilişkili bir PostgreSQL veritabanına kalıcı olmayan bağlantıyı kapatır.

13

string pg_last_error ([ resource $connection ] )

Bu rutin, belirli bir bağlantı için son hata mesajını döndürür.

14

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

Bu yordam, bir metin alanına eklenmek üzere hazır bilgiden kaçar.

15

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

Bu yordam, veritabanını sorgulamak için bir dizeden kaçar.

Veritabanına Bağlanma

Aşağıdaki PHP kodu, yerel bir makinede var olan bir veritabanına nasıl bağlanılacağını gösterir ve son olarak bir veritabanı bağlantı nesnesi döndürülür.

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

Şimdi, veri tabanımızı açmak için yukarıda verilen programı çalıştıralım. testdb: Veritabanı başarıyla açılırsa, aşağıdaki mesajı verir -

Opened database successfully

Tablo Oluşturun

Aşağıdaki PHP programı, önceden oluşturulmuş bir veritabanında bir tablo oluşturmak için kullanılacaktır -

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

Yukarıda verilen program çalıştırıldığında, programınızda ŞİRKET tablosu oluşturacaktır. testdb ve aşağıdaki mesajları gösterecektir -

Opened database successfully
Table created successfully

INSERT İşlemi

Aşağıdaki PHP programı, yukarıdaki örnekte oluşturulan COMPANY tablomuzda nasıl kayıt oluşturabileceğimizi gösterir -

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

Yukarıda verilen program çalıştırıldığında, FİRMA tablosunda verilen kayıtları oluşturacak ve aşağıdaki iki satırı görüntüleyecektir -

Opened database successfully
Records created successfully

SELECT İşlemi

Aşağıdaki PHP programı, yukarıdaki örnekte oluşturulan COMPANY tablomuzdan kayıtları nasıl getirip görüntüleyebileceğimizi gösterir -

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

Yukarıda verilen program çalıştırıldığında aşağıdaki sonucu verecektir. Tablo oluştururken alanların kullanıldıkları sırada döndürüldüğünü unutmayın.

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

GÜNCELLEME İşlemi

Aşağıdaki PHP kodu, herhangi bir kaydı güncellemek için UPDATE deyimini nasıl kullanabileceğimizi ve ardından güncellenmiş kayıtları COMPANY tablomuzdan alıp görüntüleyebileceğimizi gösterir -

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

Yukarıda verilen program yürütüldüğünde, aşağıdaki sonucu verecektir -

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

DELETE İşlemi

Aşağıdaki PHP kodu, herhangi bir kaydı silmek için DELETE ifadesini nasıl kullanabileceğimizi ve ardından kalan kayıtları COMPANY tablomuzdan alıp görüntüleyebileceğimizi gösterir -

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

Yukarıda verilen program yürütüldüğünde, aşağıdaki sonucu verecektir -

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