Macamateri kembali membahas mengenai database, kali ini berbagi pengalaman mengenai cara menghubungkan database Microsoft SQL Server di Codeigniter 3.x. Untuk kamu yang ingin tahu cara migrasi dari MySQL ke MSSQL, kamu bisa mengunjungi artikel sebelumnya di Cara Migrasi Database Dari MySQL ke Microsoft SQL Server .
Sebelumnya kamu harus tahu dahulu versi dari server yang digunakan. Berikut adalah konfigurasi server yang Macamateri gunakan dalam melakukan tes:
- Windows 10 64bit
- Xampp 3.2.1
- PHP versi 5.6.8
- Codeigniter 3.1.4
- SQL Server 2008 Express Edition
Karena itu, tutorial ini berlaku untuk kamu yang menggunakan sistem operasi Windows dan menjalankan web server serta SQL servernya di OS Windows.
Langkah-Langkah
Pertama, kamu lakukan cek versi dari PHP yang digunakan, pastikan webserver dalam keadaan Running. lalu buat file php (misal info.php) yang berisi:<?php phpinfo(); ?>taruh dalam htdocs / folder projek kamu.
![]() |
PHP info |
![]() |
Thread Safety |
Kedua, unduh tools pendukung, yaitu Microsoft Drivers for PHP for SQL Server, dan Microsoft ODBC Driver 11 for SQL Server. Bisa kamu unduh pada tautan berikut
Microsoft Drivers for PHP for SQL Server:
Ketika "Download" pilih sesuai dengan versi PHP yang kamu gunakan (lihat PHP info pada langkah pertama).Karena Macamateri menggunakan PHP versi 5.6.x maka pilih SQLSRV32.EXE.
Version 4.0 supports PHP 7.0+ on Windows and Linux
Version 3.2 supports PHP 5.6, 5.5, and 5.4 on Windows
Version 3.1 supports PHP 5.5 and 5.4 on Windows
Version 3.0 supports PHP 5.4 on Windows
Setelah itu lakukan installasi / extract ke folder baru atau langsung ekstrak ke php extensions folder (misal) C:\Xampp\php\ext.
Disini yang kamu perhatikan adalah nama dari file-nya. Pada langkah pertama kita sudah mengetahui versi PHP yang digunakan dan status dari Thread Safety. Langsung dicontohkan, macamateri menggunakan PHP versi 5.6 dan status dari Thread Safety adalah Enabled, sehingga extension driver yang digunakan adalah php_sqlsrv_56_ts.dll. Copy file tersebut dalam folder C:\Xampp\php\ext atau sesuaikan dengan folder extension php yang ada di webserver kamu (googling ya).
Lalu buka file php.ini yang ada di C:\Xampp\php\php.ini. Lalu tambahkan baris teks ini:
extension=php_sqlsrv_56_ts.dll
![]() |
Contoh Isi File php.ini |
Setelah itu download dan install Microsoft® ODBC Driver 11 for SQL Server® - Windows
https://www.microsoft.com/en-us/download/details.aspx?id=36434
Sesuaikan dengan OS yang kalian gunakan, jika mengunakan 32bit, install yang ENU\x86\msodbcsql.msi .
Ketiga, kamu buka SQL Server Configuration Management (bisa kamu temukan di Start > All Programs > Microsoft SQL Server 20XX > SQL Server Configuration Management) lalu buka SQL Server Network Configuration > Protocols for SQLEXPRESS > double click pada TCP/IP , Enabled pilih Yes.
![]() |
SQL Server Configuration Manager |
![]() |
Settings TCP Port |
![]() |
Restart SQL Server |
$active_group = 'dbsqlsrv'; $db['dbsqlsrv'] = array( 'dsn' => '', 'hostname' => '127.0.0.1', 'port' => '1433', 'username' => 'USERNAME SQLSERVER', 'password' => 'PASSWORD SQLSERVER', 'database' => 'NAMA DATABASE', 'dbdriver' => 'sqlsrv', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
Kelima, selamat... sekarang kamu bisa menggunakan SQL Server di Codeigniter.
Referensi : https://futbolsalas15.wordpress.com/2014/02/23/7-steps-to-make-sql-server-and-codeigniter-works/ dan Stackoverflow serta pengalaman pribadi
Hebat sekali programmer satu ini, sangat bermanfaat informasinya untuk Kuliah 😊😊
BalasHapusFatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\wwwroot3\system\database\drivers\sqlsrv\sqlsrv_result.php on line 190
BalasHapuspadahal bukan bermasalah pada execution time, karena sudah di ganti ke unlimited tapi tetap tidak bisa, koneksi database terputus ditengah" saat melakukan pengcodingan.. ada solusi untuk mengatasi koneksi error spt ini?
Apakah menggunakan versi yang stabil pada semua aplikasi? Timeout terjadi kemungkinan komunikasi ke server sqlnya. Masalahnya ada di sql servernya menurutku bukan di client / kodingannya.
HapusA Database Error Occurred
BalasHapusUnable to connect to your database server using the provided settings.
Filename: C:/xampp/htdocs/test/system/database/DB_driver.php
Line Number: 436
Error seperti ini bisa disebabkan service SQL Server nya belum running, atau portnya diblockir firewall, atau salah konfigurasi koneksinya.
Hapusada kesalahan konfigurasi koneksi ke driver sql server bukan pada DB_driver.PHP nya tapi pada setingan application/config/database.php yang dijelaskan diatas itu codingnya salah sehingga menyebabkan pembacaan dari DB_driver.php keliru,... logikanya MSSQL SERVER baik server dan portnya berdiri sendiri sedangkan class yang ada di DB_driver.php membaca alamat lengkap DB dari SQL Server ok langsung dikenalkan pada $db array mestinya hostname = "NAMA_SERVER\INSTANCE_SQLSERVER, DB_PORT"; contoh ="127.0.0.1\MSSQLSERVER,1433" intinya ada pada HOSTNAME nya
HapusGan sewaktu saya install SQL Server saya pilih windows authentication untuk login nya, nah untuk username dan password yang harus saya isikan di codeigniter nya apa ya?
BalasHapusmisal:
USERNAME windows: ANONIM
PASSWORD windows: 123
oh iya muncul error ini juga...
HapusAn uncaught Exception was encountered
Type: Error
Message: Call to undefined function sqlsrv_connect()
Filename: C:\xampp\htdocs\kaltim\system\database\drivers\sqlsrv\sqlsrv_driver.php
Line Number: 144
sama gan ane juga kendala yg sama kaya gitu, sudah dapet solusinya belum ya ? jika sudah bisa di info,
HapusTerima kasih
ada kesalahan konfigurasi koneksi ke driver sql server bukan pada DB_driver.PHP nya tapi pada setingan application/config/database.php yang dijelaskan diatas itu codingnya salah sehingga menyebabkan pembacaan dari DB_driver.php keliru,... logikanya MSSQL SERVER baik server dan portnya berdiri sendiri sedangkan class yang ada di DB_driver.php membaca alamat lengkap DB dari SQL Server ok langsung dikenalkan pada $db array mestinya hostname = "NAMA_SERVER\INSTANCE_SQLSERVER, DB_PORT"; contoh ="127.0.0.1\MSSQLSERVER,1433" intinya ada pada HOSTNAME nya
Hapussama aja gan
Hapuskoplak aahhh
BalasHapusNice gan. Udah ane coba work. Terima Kasih sekali lagi. semoga bisa membantu yang lainnya. Izin bookmark yaak!!
BalasHapusSQL Server Configuration Management ,,,,, ko ngga muncul ya di all program....?
BalasHapusGan sewaktu saya install SQL Server saya pilih windows authentication untuk login nya, nah untuk username dan password yang harus saya isikan di codeigniter nya apa ya?
BalasHapusmisal:
USERNAME windows: ANONIM
PASSWORD windows: 123
setelah TCP Port isikan 1433, SQL Server gagal restart, muncul pesan : The request failed or the service did not respond in a timely fashion. Consult the event log or other applicable error logs for details
BalasHapus