Senin, 21 Oktober 2013

Menghitung Umur di MySQL Dan Eksekusi-nya Melalui CDbCriteria Yii PHP Framework

Sebagai programmer, tentu tak akan bisa lepas dari dokumentasi API dari bahasa pemrograman maupun framework pemrograman yang sedang digunakan. Jika tidak, ya silakan bingung sendiri ke sana ke mari mencari jawaban jika di tengah-tengah aktivitas coding anda menemui kendala. Belum lagi kalau bingung juga mencari keyword-nya untuk googling. :D
Hal ini juga saya alami kemarin, merasa sudah terbiasa eksekusi query-query panjang MySQL di Yii menggunakan CDbCriteria, akhirnya menemui jalan buntu juga ketika harus menghitung umur menggunakan fungsi TIMESTAMPDIFF dari MySQL. Kode program saya translate manual ke dalam bahasa MySQL dan saya run, dan memang kode SQL-nya juga tidak menunjukkan adanya kesalahan alias query berjalan dengan lancar. Saya cek kode program saya juga tidak ada yang janggal, namun ketika saya jalankan selalu memunculkan pesan kesalahan yang sama seperti pada gambar dibawah ini yang intinya bahwa tidak ada kolom bernama TIMESTAMPDIFF bla bla bla atau dengan kata lain fungsi TIMESTAMPDIFF dan seterusnya itu dianggap sebagai nama kolom tabel di Yii.
Error CDbExeption, seleksi nama kolom yang tidak valid

Akhirnya saya beranikan diri bertanya di forum para pengguna Yii framework di Facebook, saya sertakan screenshot contoh form dan contoh query CDbCriteria yang saya pakai. Contoh query MySQL-nya bisa dilihat di http://pastebin.com/9BCc0R4X, sedangkan kode CDbCriteria-nya bisa dilihat di http://pastebin.com/tkCTngEx. Pada kode CDbCriteria di pastebin, pada baris ke-13 lah yang menjadi masalah di program saya. Padahal, jika proses seleksi kolom biasa query tersebut tidak ada masalah.
Akhirnya datang solusi dari akun Misbahul D Munir, bahwa SELECT-nya menggunakan array saja, bukan pure string. Saya coba dan akhirnya berhasil. Saya coba buka dokumentasi API dari Yii dan ternyata memang untuk SELECT bisa menggunakan array, baru tahu saya. :D Oleh karena itu, sebagai programmer marilah kita budayakan membaca dokumentasi API dari bahasa maupun framework pemrograman yang kita pakai. :D

Terima kasih kepada rekan-rekan di grup Yii PHP Framework Indonesia (https://www.facebook.com/groups/yii.indonesia/).

 Keywords: error cdbexception, yii framework, error yii solution, solusi error yii, solusi cdbexception, hitung umur mysql, query hitung umur, query cdbcriteria, hitung umur yii, timestampdiff mysql, fungsi di dalam select mysql

Tidak ada komentar:

Posting Komentar