Tampilkan postingan dengan label PostgreSQL. Tampilkan semua postingan
Tampilkan postingan dengan label PostgreSQL. Tampilkan semua postingan

Selasa, Juni 29, 2010

Tutorial: PHP dan PostgreSQL

Pada tutorial sebelumnya telah dibuat user dan database 'foo' di PostgreSQL, langkah berikut yaitu membuat tabel 'orang' yang berisi identitas seperti id, nama, tempat lahir dan tanggal lahir.


Login ke database foo:

$ psql foo
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

foo=#


Buat tabel orang:

foo=# create table orang (
foo(# id varchar(10),
foo(# nama varchar(30),
foo(# tplahir varchar(30),
foo(# tglahir date,
foo(# primary key(id));
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "orang_pkey" for table "orang"
CREATE TABLE
foo=#


Cek deskripsi tabel:

foo=# \d orang
Table "public.orang"
Column | Type | Modifiers
---------+-----------------------+-----------
id | character varying(10) | not null
nama | character varying(30) |
tplahir | character varying(30) |
tglahir | date |
Indexes:
"orang_pkey" PRIMARY KEY, btree (id)

foo=#


Isikan tabel orang dengan beberapa data:

foo=# insert into orang values ('1001', 'Sukimo bin Sukijo', 'Bandung', '1990-10-11') , ('1002', 'Budi', 'Lamongan', '1991-02-24'), ('1003', 'Pepi', 'Jakarta', '1992-03-09');
INSERT 0 3


Nah, terlihat 3 record sudah berhasil ditambahkan, coba lihat isi tabelnya:

foo=# select * from orang;
id | nama | tplahir | tglahir
------+-------------------+----------+------------
1001 | Sukimo bin Sukijo | Bandung | 1990-10-11
1002 | Budi | Lamongan | 1991-02-24
1003 | Pepi | Jakarta | 1992-03-09
(3 rows)


Sampai di sini pembuatan database dan satu tabel selesai. Berikutnya adalah membuat kode PHP untuk dihubungkan ke database 'foo' di PostgreSQL dan memanggil tabel 'orang' yang sudah dibuat sebelumnya. Untuk membuat kode PHP biasanya membutuhkan tools atau perangkat lunak yang khusus dibuat untuk menulis kode-kode PHP, biasanya cukup menggunakan teks editor sepeti notepad di Windows, atau cukup menggunakan nano atau vim di Unix/Linux. Akan tetapi, karena banyaknya kode yang hendak ditulis, programmer membutuhkan tools yang tidak hanya sekedar menulis saja, tetapi tools tersebut bisa menyimpan variabel-variabel yang telah ditulis dan memanggilnya kembali secara mudah, mengoreksi kesalahan penulisan kode program (debug), menggunakan library, framework, hingga mengeksekusinya dengan cepat dan bisa ditampilkan di browser. Untuk itu dibutuhkan IDE atau Integrated Development Environment yang khusus untuk PHP, biasa disebut PHP IDE. Nah, salah dua contoh yang termasuk PHP IDE ini adalah Netbeans dan Eclipse, lebih lengkap tentang PHP IDE bisa dilihat di Wikipedia.

Cara penggunaan IDE tidak dibahas di sini, tapi cukup kode PHP dasarnya saja, mari dimulai. Buka editor teks atau PHP IDE, lalu buat kode PHP berikut:


**********************************

>?
// koneksi database;
$foo_host = 'localhost';
$foo_user = 'foo';
$foo_pasword = 'rahasia'; // password sesuaikan
$foo_database = 'foo';

// buat variabel koneksi ;
$konek_foo = pg_connect("host=$foo_host dbname=$foo_database user=$foo_user password=$foo_pasword") or die ('Gagal konek foo : ' .pg_errormessage());

// buat SQL
$sql_db = "SELECT * FROM orang";
// eksekusi SQL dengan query;
$query_db = pg_query($sql_db) or die ('Gagal query : ' .pg_errormessage());
// catat record tabel;
$rows = pg_num_rows($query_db);
// buat list berdasarkan jumlah record;
$no = 1;
for ($i=0; $i<$rows; $i++) { 

$row = pg_fetch_row($query_db, $i); 
echo $no++ . " - "; 
echo $row[0]. " - "; 
echo $row[1]. " - "; 
echo $row[2]. " - "; 
echo $row[3]. ".";

}

// tutup koneksi bila sudah tidak digunakan;
pg_close($konek_foo);

?>

***********************************


Simpan dengan nama tbfoo.php, panggil di browser, setidaknya hasilnya seperti ini:



Sampai di sini dulu.

Rabu, Juni 23, 2010

Tutorial: PostgreSQL - Dasar Setup Server dengan psql

Bagi pemula, mengenal lebih dulu psql sebagai klien antarmuka berbasis baris perintah akan mempermudah nantinya penggunaan klien berbasis GUI seperti PgAdmin atau phpPgAdmin. psql menawarkan cara kuat untuk mengelola setiap aspek dari server PostgreSQL. Dibundel dengan distribusi PostgreSQL, psql fungsinya mirip dengan klien mysql pada MySQL maupun tool Oracle SQL * Plus. Dengan psql, pengguna dapat membuat dan menghapus database, tablespace, dan table, melakukan transaksi, mengeksekusi query umum seperti CREATE, SELECT, INSERT, DELETE, dan melakukan banyak perintah lainnya. Pada tutorial ini hanya menyajikan cara belajar dasar-dasar fitur psql secara sederhana pada Ubuntu Linux (beberapa distro mungkin sedikit berbeda cara setup servernya).

Asumsi

Untuk belajar psql ini diasumsikan telah mengenal konsep basis data dan SQL.

Pada tutorial ini ujicoba menggunakan Ubuntu Linux 9.04 dan PostgreSQL 8.3 atau bisa juga versi di atasnya, dan cara instalasi PostgreSQL silakan merujuk cara dari komunitas Ubuntu, untuk beberapa distro selain Ubuntu mungkin sedikit berbeda.

Instalasi

subura@localhost:~$ sudo apt-get install postgresql

User dan Database Baru

Setelah sukses menginstalasi, coba membuat user baru yang memiliki privilege sebagai superuser, perintahnya sebagai berikut.

subura@localhost:~$ sudo -u postgres createuser --superuser $USER
subura@localhost:~$ sudo -u postgres psql

$USER itu biasanya nama username Login Ubuntu, tapi di tutorial ini dibuat user berbeda dengan user login, misal: foo

subura@localhost:~$ sudo -u postgres createuser --superuser foo
subura@localhost:~$ sudo -u postgres psql
[sudo] password for subura:
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=#

Berikan password pada user 'foo'

postgres=# \password foo
Enter new password:
Enter it again:

Sekarang quit dengan perintah \q untuk masuk ke terminal lagi, lalu agar lebih mudah, coba buat database baru dengan nama yang sama dengan user: foo

subura@localhost:~$ createdb foo

Coba masuk login melalui psql menuju database 'foo' dan user 'foo', ketik:

subura@localhost:~$ psql foo
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

foo=#

Untuk melihat list semua database, ketik:

foo=# \l
List of databases
Name | Owner | Encoding
-----------+----------+----------
foo | subura | UTF8
postgres | postgres | UTF8
sekolah | subura | UTF8
subura | subura | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8

(6 rows)

foo=#

OK, sukses!

Alternatif lain membuat user baru yang memiliki hak penuh atas suatu database seperti berikut ini:

subura@localhost:~$ sudo -u postgres createuser -D -A -P myuser
[sudo] password for subura:
Enter password for new role:
Enter it again:
Shall the new role be allowed to create more new roles? (y/n) y

Perintah -D menghendaki myuser tidak memiliki hak membuat database baru, -A tidak memiliki hak menambahkan user baru, dan -P akan memberikan pertanyaan password pada prompt untuk user myuser. Pertanyaan 'Shall the new role be allowed to create more new roles? (y/n)' bila jawaban y (yes), maka myuser bisa membuat role baru.

Buat database baru dengan user myuser:

subura@localhost:~$ sudo -u postgres createdb -O myuser mydb

Bila berhasil, coba masuk via psql

subura@localhost:~$ psql mydb
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

mydb=#

Lihat list database, apakah mydb dan user myuser sudah ada dalam list

mydb=#\l
List of databases
Name | Owner | Encoding
-----------+----------+----------
foo | subura | UTF8
mydb | myuser | UTF8
postgres | postgres | UTF8
sekolah | subura | UTF8
subura | subura | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(7 rows)

mydb=#

Ok ternyata ada, sukses lagi, berikan perintah SELECT untuk mengetahui psql mendengarkan perintah ini.

mydb=# select version();

version

----------------------------------------------------------------------------------------------------

PostgreSQL 8.3.10 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Ubuntu 4.3.3-5ubuntu4) 4.3.3

(1 row)


Yup, coba lagi:

mydb=# select current_date;

date

------------

2010-06-23

(1 row)

mydb=# select 10 * 10;

?column?

----------

100

(1 row)


Mantap, sampai di sini dulu. ;-)