Cara Menampilkan Data SQL Server ke PHP Menggunakan sqlsrv

SQL Server merupakan salah satu sistem manajemen basis data (Database Management System/DBMS) yang banyak digunakan pada aplikasi perusahaan, rumah sakit, instansi pemerintah, hingga sistem informasi skala besar. Sementara itu, PHP masih menjadi bahasa pemrograman yang populer untuk membangun aplikasi web karena mudah dipelajari dan memiliki komunitas yang besar.

Agar aplikasi PHP dapat membaca data yang tersimpan di SQL Server, Microsoft menyediakan driver sqlsrv. Driver ini memungkinkan PHP menjalankan query SQL, mengambil data, serta melakukan operasi seperti tambah, ubah, dan hapus data dengan mudah.
Pada artikel ini, kita akan mempelajari cara menghubungkan PHP ke SQL Server menggunakan ekstensi sqlsrv dan menampilkan data dalam bentuk tabel HTML.

Apa Itu sqlsrv? sqlsrv adalah ekstensi resmi PHP dari Microsoft yang digunakan untuk menghubungkan aplikasi PHP dengan database SQL Server.
Beberapa kemampuan yang dimiliki driver ini antara lain:
1. Membuka koneksi ke SQL Server.
2. Menjalankan perintah SQL.
3. Mengambil hasil query.
4. Mengelola transaksi database.
5. Menangani parameter query (prepared statement).
6. Mendukung Unicode dan tipe data SQL Server.
Driver ini merupakan pilihan yang direkomendasikan dibandingkan menggunakan metode lama seperti mssql yang sudah tidak didukung lagi.

Persiapan Sebelum Memulai
Sebelum membuat program, pastikan beberapa hal berikut sudah tersedia:
1. PHP telah terpasang di komputer.
2. Microsoft SQL Server sudah berjalan.
3. Driver sqlsrv telah diaktifkan pada PHP.
4. Database yang akan digunakan sudah dibuat.
5. Tabel memiliki data untuk ditampilkan.

Sebagai contoh, misalkan terdapat tabel pegawai dengan struktur sederhana.

id nama jabatan
1 Andi Programmer
2 Budi Administrator
3 Citra Analis Sistem

Tabel data di SQLServer

Membuat Koneksi ke SQL Server
Langkah pertama adalah membuat file koneksi.
Contoh:

<?php
$serverName = “localhost”;
$connectionOptions = array(
“Database” => “db_perusahaan”,
“Uid” => “sa”,
“PWD” => “password”
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
?>

Jika koneksi berhasil, variabel $conn dapat digunakan untuk menjalankan berbagai query SQL.

Menjalankan Query
Setelah koneksi berhasil dibuat, jalankan query menggunakan sqlsrv_query().

<?php
$sql = “SELECT * FROM pegawai”;
$query = sqlsrv_query($conn, $sql);
?>

Fungsi tersebut akan mengembalikan hasil query yang nantinya dapat dibaca satu per satu.

Menampilkan Data ke HTML
Untuk menampilkan data ke dalam tabel HTML, gunakan fungsi sqlsrv_fetch_array().

<table border=”1″>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Jabatan</th>
</tr>
<?php
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{
?>
<tr>
<td><?= $row[‘id’]; ?></td>
<td><?= $row[‘nama’]; ?></td>
<td><?= $row[‘jabatan’]; ?></td>
</tr>
<?php
}
?>
</table>

Dengan perulangan tersebut, seluruh data pada tabel akan ditampilkan secara otomatis.

Tabel data Grafik dari database

Penjelasan Kode
Baris berikut:

sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)

berfungsi mengambil satu baris data hasil query dalam bentuk array asosiatif.
Artinya Anda dapat mengakses setiap kolom menggunakan nama field.
Contoh:

$row[‘nama’]

atau

$row[‘jabatan’]

Cara ini membuat kode lebih mudah dibaca dibandingkan menggunakan indeks angka.

Menampilkan Data Berdasarkan Kondisi

Misalnya hanya ingin menampilkan pegawai yang masih aktif.

$sql = “SELECT * FROM pegawai WHERE status=’Aktif'”;

Atau ingin mengurutkan berdasarkan nama.

$sql = “SELECT * FROM pegawai ORDER BY nama ASC”;

Query dapat disesuaikan dengan kebutuhan aplikasi.

Mengecek Apakah Data Kosong

Salah satu kesalahan yang sering dilakukan adalah langsung menampilkan hasil query tanpa memeriksa apakah data tersedia.
Contoh:

if(sqlsrv_has_rows($query))
{
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))
{
// tampilkan data
}
}
else
{
echo “Data tidak ditemukan.”;
}

Cara ini membuat aplikasi lebih ramah bagi pengguna.

Menutup Koneksi
Setelah proses selesai, sebaiknya koneksi ditutup.

sqlsrv_close($conn);

Walaupun PHP biasanya akan menutup koneksi secara otomatis ketika script selesai dijalankan, menutup koneksi secara eksplisit merupakan kebiasaan yang baik.
Kesalahan yang Sering Terjadi

Saat menggunakan sqlsrv, beberapa error yang sering muncul antara lain:

Driver sqlsrv belum aktif

Biasanya muncul pesan:

Call to undefined function sqlsrv_connect()

Solusinya adalah memastikan ekstensi sqlsrv sudah diaktifkan pada file php.ini.

Login Gagal
Pesan error:

Login failed for user

Penyebabnya biasanya username atau password SQL Server yang salah.
Database Tidak Ditemukan

Pesan seperti:

Cannot open database requested by the login

Periksa kembali nama database yang digunakan pada konfigurasi koneksi.
Server Tidak Bisa Dihubungi
Jika server SQL Server berada di komputer lain, pastikan:

SQL Server Service berjalan.
TCP/IP telah diaktifkan.
Firewall tidak memblokir koneksi.
Nama server atau alamat IP sudah benar.
Tips Agar Program Lebih Aman

Saat membuat aplikasi yang berinteraksi dengan database, hindari menulis query secara langsung menggunakan data dari pengguna.
Gunakan prepared statement agar aplikasi lebih aman dari serangan SQL Injection.

Selain itu:
1. Gunakan validasi input.
2. Hindari menampilkan pesan error database kepada pengguna.
3. Simpan konfigurasi koneksi pada file terpisah.
4. Tutup koneksi jika sudah tidak digunakan.

Kesimpulan
Menghubungkan PHP dengan SQL Server menggunakan driver sqlsrv sebenarnya cukup mudah. Anda hanya perlu membuat koneksi, menjalankan query menggunakan sqlsrv_query(), kemudian mengambil hasilnya menggunakan sqlsrv_fetch_array() untuk ditampilkan pada halaman web.
Dengan memahami dasar penggunaan sqlsrv, Anda dapat mengembangkan berbagai aplikasi seperti sistem informasi, aplikasi inventaris, sistem kepegawaian, hingga aplikasi rekam medis yang memanfaatkan SQL Server sebagai database utama.
Setelah memahami cara menampilkan data, langkah berikutnya adalah mempelajari operasi CRUD (Create, Read, Update, Delete), prepared statement, transaksi database, serta optimasi query agar aplikasi menjadi lebih cepat dan aman.