Monday, August 2, 2010

PDO di Symfony Framework

Symfony Framework adalah sebuah Framework PHP yang flexsibel,


diantaranya adalah kemudahan pemakai untuk memilih driver untuk koneksi kedatabase.

Diantaranya yaitu koneksi ke database melalui Prople, Doctrine atau PDO. yang akan dibahas diblog ini adalah koneksi kedatabase melalui PDO.

PDO singkatan dari PHP Data Object adalah sebuah interface/driver untuk mengakses database melalui PHP. untuk menggunakan PDO versi minimum PHP adalah 5.1.

Untuk dapat menggunakan PDO dengan tujuan Koneksi ke Database MySQL maka PHP di Server Anda harus terlebih dahulu telah ada library untuk unix /linux adalah pdo.so dan pdo_mysql.so bila windows pdo.dll dan pdo_mysql.so

Biasanya bila Anda instal PHP versi > 5.1.x Library pdo dan pdo_mysql telah tersedia dan cukup mengaktifkan saja di file konfigurasi php yaitu php.ini

Pada posting ini diasumsikan bahwa lib pdo dan pdo_mysql telah ada pada PHP Anda.

Berikut ini adalah informasi spesifikasi yang saya gunakan:
Versi Symfony Framework :1.4.1
Sistem Operasi : Linux Ubuntu Lucid Lynx (10.04)
PHP : 5.3.2
Mysql : 5.1.41

Berikut ini cara menggunakan PDO di Symfony Framework, sebaiknya Anda telah mengerti cara Instalasi Symfony dan membuat Hello Word di symfony terlebih dahulu.

Tahap 1
Pastikan lib pdo telah diload oleh php. Buka file konfigurasi php.ini dan pada kelompok Dynamic Extensions pastikan terdapat baris (bila tidak ada ditambahkan)
extension=pdo.so
extension=pdo_mysql.so

Tahap 2
Pada configurasi database symfony yaitu config/databases.yml lakukan setting database dengan menggunakan library sfPDODatabase miliki symfony, seperti contoh dibawah ini:
all:
 pdo:
  class: sfPDODatabase
  param:
   dsn: mysql:dbname=symBrige;host=localhost
   username: root
   password: pass
   encoding: utf8

Tahap3
Sebagai contoh saya telah membuat table senderhana bernama siswa
CREATE TABLE `symfBrige`.`siswa` (
`kode` CHAR (4)  NOT NULL,
`nama` VARCHAR (255)  NOT NULL,
PRIMARY KEY (`kode`)
)
ENGINE = MyISAM;


A. Sebagai contoh pada sebuah action saya akan membuat SQL Insert sederhana di sebuah modul symfony, seperti perintah dibawah dibawah ini:
$this->con=sfContext::getInstance()->getDatabaseConnection('pdo');
$query = "INSERT INTO siswa (kode,nama) VALUES ('0001','Dendie Sanjaya')";
$stmt = $this->con->prepare($query);
$stmt->execute();


B. Bila Anda menjalankan query yang menghasilkan resultset, contohnya seperti dibawah ini
$this->con=sfContext::getInstance()->getDatabaseConnection('pdo');
$query = "select * from siswa";
$stmt = $this->con->prepare($query);
$stmt->execute();
$data = $stmt->fetchAll();
foreach($data as $val)
{
echo $val['kode'],'-',$val['nama'],'
'; 
}

C. Bila Anda memerlukan pemanggilan Query, contohnya seperti dibawah ini
$this->con=sfContext::getInstance()->getDatabaseConnection('pdo');
$strKode = '0001';
$stmt = $this->con->prepare("call sp_siswa(:kode)");
$stmt->bindParam(':kode', $strKode, PDO::PARAM_STR, 100);
$stmt->execute();
$data = $stmt->fetchAll(); print_r($data); 
foreach($data as $val)
{
echo $val['kode'],'-',$val['nama'],'
'; 
}

Berbagai macam statemen dari PDO dapat di lihat di Klik

2 comments:

  1. selain PDO apa ada artikel Doctrine dan Propel

    ReplyDelete
  2. ada.. yang doctrine di http://dendieisme.blogspot.com/2009/12/symfony-dan-doctrine.html

    ReplyDelete