Thursday, June 7, 2007

Mengawinkan PHP dan Microsoft SQL SERVER

php and sql server Images


Sejujurnya baru kali ini saya berkesempatan untuk menyandingkan
PHP dan Sql Server untuk aplikasi berbasis web. Sebelumnya seperti
kebanyakan developer, saya lebih memilih untuk menggunakan MySQL
sebagai databasenya.
Namun dikarenakan tugas dari kantor untuk menampilkan query dari
database SQL Server, saya akhirnya harus merubah beberapa script
yang sebelumnya telah dibuat oleh kawan saya.


Menurut saya sebenarnya tidak beda jauh, antara syntax pengaksesan database
dari php ke SQL SERVER atau dari php ke mysql. Letak perbedaannya
terdapat pada query string, seperti kasus yang saya alami hari ini
ketika saya hanya menampilkan record terakhir hasil pengurutan dari sebuah pengkondisian
query, secara di MySQL saya menggunakan query seperti dibawah ini :

"SELECT * FROM tbl_a WHERE field_a = '".$a."' ORDER BY field_a DESC LIMIT 1"

kita dapat menggunakan LIMIT untuk mendapatkan record yang kita inginkan,
seperti diketahui MySQL menyediakan limit untuk mengembalikan hanya
bagian-bagian dari hasil pencarian. Format penulisannya adalah sebagai
berikut :

SELECT * FROM table WHERE kondisi LIMIT 0,10

Nilai 0 merupakan nilai awal dari nomer row yang ditampilkan, dan nilai 10 merupakan banyak
record yang akan ditampilkan.

Kembali ke kasus saya, kita harus memodifikasi query diatas agar bisa
menampilkan data yang kita inginkan dari SQL SERVER, hal tersebut
dikarenakan SQL SERVER tidak men-support perintah LIMIT. Namun sebagai
gantinya SQL SERVER menyediakan perintah TOP, seperti yang ditunjukan dibawah ini :

"SELECT TOP 10 * FROM tbl_a WHERE field_a = '".$a."' ORDER BY field_a DESC"


Pada PHP beberapa perintah yang dapat kita gunakan untuk mengesekusi
perintah query di SQL SERVER, seperti berikut :

#1. odbc_exec($conn,$str_query) ekivalen dengan mysql_query($conn,$str_query)
#2. odbc_fetch_row() ekivalen dengan mysql_fetch_row() atau mysql_fetch_assoc()
#3. odbc_result($recordset,"field") ekivalen dengan $recordset["field"];

dan masih banyak lagi, contoh diatas hanya yang terjadi pada kasus yang saya alami,
sangat mengasyikan bisa mencoba dibeberapa database yang berbeda-beda.

No comments: