Sunday, June 21, 2015

Koneksi Database SQL Server pada Codeigniter

Untuk menghubungkan PHP(codeigniter) dengan SQL Server, dibutuhkan driver tambahan dan setting yang tepat. Sebagai informasi, versi aplikasi penulis gunakan:
  • Microsoft SQL Server 2008 R2 Express
  • XAMPP 5.6.3-0
  • PHP 5.6.3 TS
  • Apache 2.4.10
  • Codeigniter 2.2.2

Pertama, cek versi PHP yang telah terpasang(Thread Safe (TS) atau Non Thread Safe (NTS)). Buka web browser, arahkan ke http://localhost/xampp/ lalu klik tautan phpinfo(). Lihat bagian Thread Safety, jika tertulis enabled maka versi PHP adalah Thread Safe (TS), selain itu adalah Non Thread Safe (NTS).

Selanjutnya, unduh  Microsoft Drivers for PHP for SQL Server. Sesuaikan dengan versi PHP yang digunakan. Saat artikel ini ditulis, terdapat 4 versi driver:
  1. SQLSRV20.EXE: tidak ada keterangan, membutuhkan Microsoft SQL Server 2008 R2 Native Client versi x86
  2. SQLSRV30.EXE: kompatibel dengan PHP 5.4, membutuhkan Microsoft SQL Server 2012 Native Client versi x86
  3. SQLSRV31.EXE: kompatibel dengan PHP 5.5 and 5.4, membutuhkan Microsoft ODBC Driver 11 (atau yang lebih tinggi)
  4. SQLSRV32.EXE: kompatibel dengan PHP 5.6, 5.5, and 5.4, membutuhkan Microsoft ODBC Driver 11 (atau yang lebih tinggi)

Sesuai informasi yang penulis peroleh pada langkah sebelumnya, maka penulis perlu mengunduh dan memasang Microsoft® ODBC Driver 11 for SQL Server® - Windows dan SQLSRV32.EXE. Sesuaikan dengan versi Windows yang akan digunakan, untuk Windows 64-bit unduh berkas 1033\x64\msodbcsql.msi, sedangkan untuk Windows 32-bit unduh berkas 1033\x86\msodbcsql.msi. Untuk memasang SQLSRV32.EXE dapat dilakukan dengan cara double click berkas yang telah diunduh, atau bisa juga dengan cara mengekstraknya menggunakan aplikasi WinRAR atau 7Zip. Kopi berkas php_sqlsrv_56_ts.dll (sesuai spesifikasi yang penulis gunakan) yang didapat dari SQLSRV32.EXE ke FOLDER_XAMPP\php\ext. Buka berkas FOLDER_XAMPP\php\php.ini menggunakan text editor, pada bagian Dynamic Extensions tambahkan:
;extension=php_ldap.dll
extension=php_sqlsrv_56_ts.dll

Untuk melakukan tes koneksi, buat sebuah file .php dengan isi:
<?php
$serverName = "(local)"; //sesuaikan dengan spesifikasi yang digunakan
$conn = sqlsrv_connect( $serverName);

if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn))
{
       foreach( $client_info as $key => $value)
      {
              echo $key.": ".$value."\n";
      }
}
else
{
       echo "Client info error.\n";
}

sqlsrv_close( $conn);
?>

Buka berkas .php yang telah dibuat menggunakan web browser, jika terlihat pesan kesalahan "Could not connect..." berarti koneksi belum berhasil, cek detil pesan kesalahan yang ditampilkan. Selain itu, berarti SQL Server siap dikoneksikan dengan codeigniter. Untuk konfigurasi yang diperlukan untuk SQL Server (database.php pada codeigniter) adalah:
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'XXXXX';
$db['default']['password'] = 'XXXXX';
$db['default']['database'] = 'tutorial';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['pconnect'] = FALSE;





Referensi:
  • https://futbolsalas15.wordpress.com/2014/02/23/7-steps-to-make-sql-server-and-codeigniter-works/
  • http://www.manjustudio.com/2013/01/09/codeigniter-mssql-sqlsrv/
  • https://msdn.microsoft.com/en-us/library/cc296165(v=sql.105).aspx

2 comments:

Unknown said...

Kalo error Call to undefined function sqlsrv_connect() kenapa ya gan?

Al-Mujahid said...

Terima kasih mas_ony, sangat membantu!