Contoh Penggunaan Query Builder Yii

Query Builder membuat kita dapat menuliskan syntax SQL dengan berorientasikan object. Query Builder ini juga merupakan salah satu kelebihan Yii yang menyebabkan kita dapat menggunakan query SQL dengan sangat mudah di dalam aplikasi web yang sedang kita bangun.

Kelebihan penggunaan Query Builder Yii ini bisa Anda baca lebih banyak di Wiki dari Yii. Tulisan di bawah ini hanyalah sebagai catatan sederhana untuk mengingat bagaimana penggunaan Query Builder Yii ini.

Contoh Penggunaan Query Builder Yii

Salah satu contoh penggunaan Query Builder untuk mencari nilai maksimal dari suatu kolom adalah seperti ini:

$jml = Yii::app()->db->createCommand()
   ->select(array('id_produk', 'max(id_produk) as jml_produk'))
   ->from('smakd_blok2')
   ->queryRow();

Anggap saja code di atas ada di dalam Controller, variabel $jml di atas adalah masih berbentuk array object, sehingga kita tidak bisa menampilkannya dengan echo $jml saja di bagian view kita.

Untuk menampilkan value jml_produk, kita harus merujuk ke elemen dalam array yang akan ditampilkan. Seperti ini contohnya:

$id_produk_next = $jml['jml_produk'];

Query Select

Untuk fungsi select menggunakan Query Builder, kita bisa memodifikasi dari source code di bawah (diambil dari Yii Wiki)

$user = Yii::app()->db->createCommand()
    ->select('id, username, profile')
    ->from('tbl_user u')
    ->join('tbl_profile p', 'u.id=p.user_id')
    ->where('id=:id', array(':id'=>$id))
    ->queryRow();

Query Update

Untuk update, ini adalah contoh penggunaannya dimana kita menggunakan query builder untuk melakukan select kemudian hasilnya kita jadikan acuan untuk melakukan update:

$jmlProdukSkg = Yii::app()->db->createCommand()
                        ->select(array('id_produk', 'count(*) as jml_produk'))
                        ->from('smakd_blok2')
                        ->queryRow();

$command = Yii::app()->db->createCommand();
                $command->update('smakd_blok1', array(
                    'jml_produk' => $jmlProdukSkg['jml_produk'],
                        ), 'id_prop=:id AND id_kab_kota=:id2 AND no_urut_perusahaan=:id3', array(':id' => $id, ':id2' => $id2, ':id3' => $id3));

Semoga code snippet di atas berguna bagi yang membacanya, kalau tidak paham buka saja wikinya di http://www.yiiframework.com/doc/guide/1.1/id/database.query-builder

Sekian tutorial contoh penggunaan Query Builder Yii.

Semoga bermanfaat.

Leave a Comment