Home > Linux, Perl, PostgreSQL, Windows > Perl connection to PostgreSQL

Perl connection to PostgreSQL

Modul Perl yang diperlukan

Agar program Perl bisa connect ke Posgres diperlukan modul tambahan Perl sebagai berikut:

  1. DBI
  2. DBD::Pg

Instalasi Modul di Linux

Untuk sistem operasi Linux, installasi modul sangat mudah dilakukan, yaitu dengan menggunakan program RPM, Yum, dan sebagainya.

Sebagai contoh untuk menginstall modul DBD::Pg, lakukan langkah-langkah sbb:

Cari nama package modul jika belum diketaui secara pasti.

# yum search perl-dbd

hasilnya misalnya (bisa beda-beda setiap komputer):

Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile  * base: centosq2.centos.org  * updates: centosw.centos.org  * addons: centosk2.centos.org  * extras: centosw.centos.org
perl-DBD-Pg.x86_64 : A PostgresSQL interface for perl
perl-DBD-MySQL.x86_64 : A MySQL interface for perl

Dari hasil pencarian tersebut dapat diketahui nama file modul yang perlu diinstal secara pasti, yaitu perl-DBD-Pg.x86_64.

Jalankan perintah install sebagai berikut:

# yum install perl-DBD-Pg.x86_64

Pastikan tidak ada pesan error. Jika sudah sukses, maka modul DBD::Pg siap digunakan. Modul DBI umumnya sudah diinstall secara default. Namun jika belum (diketahui dari pesan error saat install DBD::Pg) maka lakukan langkah yang sama seperti di atas untuk modul DBI.

Instalasi Modul di Windows

Untuk Sistem operasi Windows gunakan ActiveState Perl. Pada program tersebut terdapat program utiliti ppm (perl package manager) yang dapat digunakan untuk mengelola modul.

Script Koneksi PostgreSQL

Langkah pemanggilan fungsi yang perlu dilakukan oleh script Perl untuk konek dan query ke Postgres adalah:

  1. function $dbh = DBI->connect()
  2. function $sth = dbh->prepare($sql)
  3. function $sth->execute;
  4. jika diperlukan untuk mengambil data: function $sth->fetchrow()

Langkah pertama adalah memanggil modul DBI untukmelakukan koneksi ke database.  Seacara lengkap sintaksnya adalah :

$dbh = DBI->connect("dbi:Pg:dbname=namadatabase", 'namauser', 'password', {AutoCommit => 1});

Dimana paramenter pertama “dbi:Pg:dbname=namadatabase” adalah parameter koneksi ke server. Dapat ditambahkan dengan string hostname dan port yang jika tidak dicantumkan maka diasumsikan localhost port 5432.

Parameter kedua dan ketiga adalah nama user database dan password nya yang digunakan untuk melakukan koneksi.

Parameter ke empat {AutoCommit => 1} adalah option yang menentukan apakah setiap query akan otomatis di commit atau tidak. Jika Tidak maka perlu dijalanlan function $dbh->commit().

Setelah berhasil konek, langkah selanjutnya adalah mempersiapkan SQL statement yang akan dikirimkan ke server. Perintah selengkapnya misalnya sbb:

$sql = "select * from namatable";
$sth = $dbh->prepare($sql);

Setelah dipersiapkan, maka panggil function execute untuk mengeksekusi SQL:

$sth->execute;

Jika SQL yang dijalankan mengeluarkan hasil (misalnya SQL SELECT), maka data yang dihasilkan ditangkap dengan menggunakan function $sth->fetchrow() yang dilooping sampai dengan data tersebut habis, sebagai berikut:

while ( my @row = $sth->fetchrow() )
{
     print $row[0] , $row[0];
}

Untuk SQL yang tidak mengeluarkan hasil (misalnya SQL INSERT, UPDATE), maka tidak perlu dilakukan pemanggilan function fetchrow().

Akhmad Daniel Sembiring

vITraining.com – Qualified IT Products, Outsourcing, and Services

Ligarwangi.com – Linux, E-book, Coffee, Gift, etc

  • Share/Bookmark
  1. No comments yet.
  1. No trackbacks yet.
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.