Rabu, 30 Mei 2012

Konfigurasi Codeigniter 2.1.0 dengan SQL Server 2008

Pada kali ini saya mau sharing mengenai konfigurasi Codeigniter (CI 2.1.0) untuk database SQL Server 2008. Sebagai info tambahan, saya menggunakan XAMPP 1.7.7 dengan OS Windows 7 64bit.
Langkah-langkahnya sebagai berikut :
  1. Download driver SQL Server untuk PHP, bisa di download disini.  Sebagai catatan cek versi PHP yang sedang dipakai, kemudian cocokkan dengan versi library PHP untuk SQL Server.
  2. Ekstrak file yang telah di download ke extensinya php (contoh klo di XAMPP ada di XAMPP/php/ext)
  3. Edit file php.ini nya, trus tambahkan code (untuk PHP 5.3) 
    extension=php_sqlsrv_53_ts_vc9.dll 
    extension=php_pdo_sqlsrv_53_ts_vc9.dll
    UNTUK PHP 5.3 bisa pake php_sqlsrv_53_ts_vc9, klo PHP 5.4 php_sqlsrv_54_ts_vc9   sesuai denan versi PHP nya
  4.  Selanjutnya setting database.php yang ada pada folder config Codeigniter
    $db['default']['hostname'] = 'ZAWA-PC'; 
    isi dengan nama pc atau IP komputer
    untuk koneksi database dari komputer lain dapat seperti 'tcp:MOUZA-PC,1433';
    MOUZA-PC dapat diganti dengan IP komputer lain yang terdapat database SQL Server
    1433 merupakan port default SQL Server
    $db['default']['username'] = 'sa';
    $db['default']['password'] = '123456';
    $db['default']['database'] = 'db_zawa';
    $db['default']['dbdriver'] = 'sqlsrv';
    $db['default']['dbprefix'] = '';
    

    $db['default']['pconnect'] = FALSE; 
    Default CI nya true, tp buat False karena di library sistem CI nya nilai return nya tidak ada  (bisa di perbaiki sendiri, cukup kasih code "return" di library sistemnya).
    $db['default']['db_debug'] = TRUE;
    $db['default']['cache_on'] = FALSE;
    $db['default']['cachedir'] = '';
    $db['default']['char_set'] = 'utf8';
    $db['default']['dbcollat'] = 'utf8_general_ci';
    $db['default']['swap_pre'] = '';
    $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;
    

Setelah selesai melakukan konfigurasi, cobalah untuk koneksi. Semoga berhasil.
Sekian dulu artikel yang saya buat. Semoga dapat berguna.. ^_^

Keyword : PHP CodeIgniter, Konfigurasi SQL Server 2008

Untuk menghargai HKI(Hak Kekayaan Intelektual), sumber referensi yang saya pakai dan saya pelajari akan ditampilkan.
Referensi     : http://codeigniter.com/,  msdn.microsoft.com
Author        : Moch. Zawaruddin Abdullah, www.zawaruddin.blogspot.com

65 komentar:

  1. download selain dari microsoft dmna ya ? soalnya yg vc9.dll gg ada pas di exctractnya.. bisa di upload gg itu file dll lunya ?? makasih yah...

    BalasHapus
    Balasan
    1. maaf baru bls.. lg sibuk TA.. he
      install juga yang versi 2 nya klo ingin vc9.dll nya, cos vc9.dll nya ada d versi 2...

      Hapus
  2. Maaf, sekedar revisi sedikit. Pada point 4 bukan config.php tetapi database.php

    BalasHapus
    Balasan
    1. ah gomen ne a.k.a sorry, salah maksud.. ya benar itu maksudnya config database.php nya...
      thanks dah koreksi bro... :D

      Hapus
  3. aku udah coba, tapi kenapa ya muncul pesan error
    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\AutoWeb\system\database\DB_driver.php

    Line Number: 124

    thanks :))

    BalasHapus
    Balasan
    1. kemungkinan itu karena masih terdapat kesalahan setingan database.php nya...

      Hapus
    2. oh dibagian mananya gan
      klo blh tahu

      Hapus
    3. maaf kalo boleh tahu dibagian mananya yah gan

      Hapus
    4. ya coba d buka config database di application/config/database.php
      cek apakah settinganya sudah benar apa belum

      Hapus
  4. halo, saya coba di win 8 dan xampp 1.8.1, tetapi ketika mau jalankan xampp muncul error "php startup unable to initialize module module compiled with..."

    saya coba telusuri, ternyata error muncul akibat penambahan di php.ini:
    extension=php_sqlsrv_53_ts_vc9.dll
    extension=php_pdo_sqlsrv_53_ts_vc9.dll

    ada solusi bro? thanks

    BalasHapus
    Balasan
    1. nah untuk library sql servernya udah d taruh dalam folder "ext" blum?
      kemungkinan itu yang menyebabkan error karena dalam php.ini mengeksekusi librari untuk di load, tp akan error jika librarynya tidak tersedia...

      Hapus
    2. untuk library nya sudah saya taruh di dalam folder "ext".

      kalo boleh tau agan pakai xampp versi berapa dan windows versi berapa ketika coba?

      Hapus
    3. oh ya lupa kasih tau tentang hal itu...
      q pake XAMPP 1.7.7 dengan OS Windows 7 64bit.
      hehe.. gomen :D

      Hapus
    4. mau info aja agan, sy sdh berhasil di xampp 1.8.1 dgn OS Win 8. jadi yg dipake component :

      extension=php_sqlsrv_54_ts.dll
      extension=php_pdo_sqlsrv_54_ts.dll

      Thanks...

      Hapus
    5. oh, berarti di XAMPP 1.8.1 sudah pake PHP 5.4 jadi library PHP SQL Server jg harus d upgrade ke PHP 5.4... hm.. i see

      OK... sama2 gan,,,

      Hapus
    6. bro dan agan aku pakek xampp 1.8.2 pakek PHP 5.4 dan gagal terus aku udah pakek kayak ini extension=php_sqlsrv_54_ts.dll
      extension=php_pdo_sqlsrv_54_ts.dll di os win 7 64 bit
      bisa bantu kah ?

      Hapus
  5. kita juga punya nih jurnal mengenai Code Igniter, silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/1204/1/50407479.pdf
    semoga bermanfaat ya :)

    BalasHapus
    Balasan
    1. OK... thanks bro dah mau share jg.. maaf baru bls... g tau ada comment ini... :)

      Hapus
  6. kalo pake windows XP bisa atau tidak libnya? apakah support di XP?

    BalasHapus
    Balasan
    1. klo untuk driver SQL Server versi 3 g support untuk XP...

      cek disini aja... http://www.microsoft.com/en-us/download/details.aspx?id=20098

      Hapus
  7. Maaf mau tanya, kalau Authentication sql servernya disetting menggunakan Windows Authentication, config database codeigniternya seperti apa ya?

    terima kasih

    BalasHapus
    Balasan
    1. terima kasih dah mampir, ya seperti yang d sampaikan pada artikel di atas, config database d CI cukup mengikuti seperti artikel di atas (selama ini saya menggunakan config seperti di atas)

      Hapus
  8. Saya pake xampp 1.8.3 dan windows 8.1 ms sql server 2000
    saya sudah intstall driver yang versi 2 maupun 3

    menggunakan versi php 5.4 untuk setingan di php.ini

    tp yg muncul

    Fatal error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs\cu\system\database\drivers\sqlsrv\sqlsrv_driver.php on line 86

    bisa di bantu :)

    stuck hehehe..

    BalasHapus
    Balasan
    1. sudah d setting d php.ini nya dan d restart apachenya blm?

      Hapus
  9. gan
    saya pake XAMPP 1.8.1 dan windows 7 sql server 2008
    saya udah ikutin tutorial agan
    tp ketika apache saya restart keluar kaya gini gan
    php startup : unable to load dynamic library
    'E:\xampp\php\ext\php_sqlsrv_54_ts_vc9.dll' - the specified module could not be found

    knp tuh gan ?
    mohon pencerahannya

    BalasHapus
    Balasan
    1. berarti belum ada library nya di folder ext/php nya... coba masukkan library php-sqlsrv nya ke dalam folder ext/php...

      Hapus
    2. rekomendasi ane sih pake yg ini aja extension=php_sqlsrv_54_ts.dll

      Hapus
  10. A Database Error Occurred

    Unable to connect to your database server using the provided settings.

    Filename: E:\xampp\htdocs\skb_data\system\database\DB_driver.php

    itu kenapa ya gan ?
    di database.php nya udah ane sesuaikan termasuk jika menggunakan dengan IP komputer lain.
    yang sebelumnya udah solved gan :D
    mohon pencerahannya

    BalasHapus
    Balasan
    1. coba konfigurasi nya spt ini
      $db['default']['hostname'] = 'tcp:IPADDRESS,PORT-DEFAULT-SQLSRV';

      contoh
      $db['default']['hostname'] = 'tcp:192.168.0.1,1433';

      Hapus
    2. Udah d pake itu hostname nya gan. Tp tetep g bisa. Knp ya gan ?

      Hapus
    3. udah ane ikutin hostname nya kaya gitu gan. tp tetep ga bsia tetep unable to connect to yoru database. knp ya gan ?

      Hapus
    4. coba ane liat konfig db ente gan?

      oh ya coba setting db untuk pconnect nya d set false aja gan...

      $db['default']['pconnect'] = TRUE; ganti FALSE....

      Hapus
    5. udah jalan gan. ane ngetest koneksi pake php murni bukan di CI dan errornya ane harus pake extension microsoft sql server 2012 X64 mungkin karena sql server yg ane pake 32 bit mungkin. hehehe #sotoy
      trus ane install dan alhamdulillah jalan gan.
      thanks gan :D maaf ngerepotin

      Hapus
  11. kang, mau tanya dong, ane udah konfigurasi semua gan, tapi masih muncul error begini :
    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\svn\ncomextra\system\database\DB_driver.php

    Line Number: 124

    nah, padahal di php.ini udah ane kasih ext sesuai versi php nya, ane pake versi 5.4.
    tolong pencerahan nya gan. thx

    BalasHapus
  12. kang, mau tanya dong, ane udah konfigurasi semua gan, tapi masih muncul error begini :
    Unable to connect to your database server using the provided settings.

    Filename: C:\xampp\htdocs\svn\ncomextra\system\database\DB_driver.php

    Line Number: 124

    nah, padahal di php.ini udah ane kasih ext sesuai versi php nya, ane pake versi 5.4.
    tolong pencerahan nya gan. thx

    BalasHapus
    Balasan
    1. maaf baru bales...
      install dulu Microsoft SQL SERVER Native Client nya...

      Hapus
    2. coba cek artikel ane terbaru untuk update artikel ini...
      http://zawaruddin.blogspot.com/2015/01/konfigurasi-codeigniter-2xx-dengan-sql.html

      Hapus
    3. SQL SERVER Native Client nya mah udah.
      Udah bisa kang.. ane salah setting di file database.php nya. hehe :D .
      thansk ya. sukses selalu

      Hapus
  13. mas kalo untuk koneksi ke mysql tapi xampp nya di port 8080 ( jadinya akses alamat ke http://code:8080/cek )
    muncul Error Unable to connect to your database server using the provided settings.

    Filename: C:\wamp\www\codeignite\system\database\DB_driver.php

    Line Number: 124

    Setting config dan database sudah sesuai, selain itu yang perlu diperiksa apa lagi ? terima kasih

    BalasHapus
    Balasan
    1. itu kemungkinan setting koneksi database nya masih belum benar...
      btw ini pake xampp ato wamp?

      Hapus
    2. Saya pakai Xampp, dikarenakan server juga ada IIS dan telah terpakai port 80, maka saya rubah xampp nya menjadi port 8080, tetapi ketika dijalankan di port 80, aplikasinya jalan. Berikut script di database.php
      $active_group = 'default';
      $active_record = TRUE;

      $db['default']['hostname'] = 'localhost';
      $db['default']['username'] = 'root';
      $db['default']['password'] = 'XXXXXX';
      $db['default']['database'] = 'xxxxx';
      $db['default']['dbdriver'] = 'mysql';
      $db['default']['dbprefix'] = '';
      $db['default']['pconnect'] = FALSE;
      $db['default']['db_debug'] = TRUE;
      $db['default']['cache_on'] = FALSE;
      $db['default']['cachedir'] = '';
      $db['default']['char_set'] = 'utf8';
      $db['default']['dbcollat'] = 'utf8_general_ci';
      $db['default']['swap_pre'] = '';
      $db['default']['autoinit'] = TRUE;
      $db['default']['stricton'] = FALSE;

      Hapus
    3. coba d cek apakah firewall os wind*ws sudah ada rule untuk aplikasi apache pada port 8080, klo blum ada buat rule firewall dulu untuk aplikasi/program apache port 8080...

      Hapus
  14. Sudah bisa mas, selain buat rule di firewall saya juga memberikan hakakses pada my sql agar dapat di akses oleh host komputer yang ada, dengan perintah GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘’ WITH GRANT OPTION; . akhirnya berhasil .. Terima Kasih atas sharing nya

    BalasHapus
  15. Bisa bantu error ini :

    Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 513 bytes) in D:\xampp\htdocs\Test_SQL\system\database\drivers\sqlsrv\sqlsrv_driver.php on line 144

    kenapa ya ?

    terima kasih

    BalasHapus
  16. mas bisa bantu ga,
    sewaktu ke localhostnya, muncul spt ini

    Fatal error: Call to undefined function mysql_connect() in C:\xampp\htdocs\belajar\config.php on line 19

    BalasHapus
  17. mas mw tanya dong, klo akses sql server dari luar bisa ga (maksudnya koneksi db dari server dengan nama domainnya) ?

    thanks,,,

    BalasHapus
    Balasan
    1. bisa, pakai alamat IP address dari komputer yg terinstal sql server...

      Hapus
  18. A Database Error Occurred

    Error Number: 1064

    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '= '123456'' at line 1

    select * from mahasiswawhere nim = '123456'

    Filename: C:\xampp\htdocs\codeigniter\system\database\DB_driver.php

    Line Number: 331

    INI EROR Waktu mau edit data gan, gimana ya solusinya, semua langkah2 d atas sudah saya ikuti.

    BalasHapus
    Balasan
    1. kurang spasi gan pas where nya...
      select * from mahasiswa where nim = '123456'

      Hapus
  19. Array
    (
    [0] => Array
    (
    [nim] => 1100929721
    [nama] => joko
    [alamat] => padan


    )

    [1] => Array
    (
    [nim] => 11101006232
    [nama] => joko
    [alamat] => mbradur
    )

    [2] => Array
    (
    [nim] => 123456
    [nama] => JOO
    [alamat] => anksjnfskdf
    )

    )

    pdhl, cm mau pgl 1 data

    BalasHapus
  20. saya sudah konfigurasi database seperti yang mas kasih, sudah copy file .dll ke xampp/php/ext, sudah install native client, tapi kenapa ya kok blank hasilnya ngga ada apa apa?

    BalasHapus
  21. gan mau tanya saya menggunakan xampp 1.7.0, cara seting ci gimana ya gan?

    BalasHapus
  22. kalau bleh tau ini kenapa yah min??

    Error Number: 1054

    Unknown column '1' in 'where clause'

    SELECT * FROM (`barang`) WHERE `kode` = 'A01' AND `1` IS NULL

    Filename: C:\xampp\htdocs\toko-online2\system\database\DB_driver.php

    Line Number: 331

    thanks

    BalasHapus
  23. Gan mau nanya kalau error spt di bawah ini kenpa ya , pake php 5.6 terima kasih

    A Database Error Occurred

    Error Number: 42000

    [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Must specify table to select from.

    SELECT *

    Filename: C:\xampp\htdocs\rumahku\system\database\DB_driver.php

    Line Number: 331

    BalasHapus
    Balasan
    1. itu masih ada kesalahan di model untuk query-nya. silahkan d cek

      Hapus
    2. iya udah bisa gan sudah pake script
      function Getall($id = null){
      $data = $this->db->select('*')->from('barang');
      //$data = $this->db->get->result_array();

      $data = $this->db->get()->result_array();

      return $data;
      //var_export($data);die();
      }
      itu cuman bisa get satu table , seandanya saya mau join querynya seperti apa ya gan , soalnya pake script seperti di bawah error gan

      function getData($id = null) {
      if($id == null){
      $query = "SELECT barang.*, satuan.nama_satuan FROM barang
      INNER JOIN satuan ON satuan.id_satuan = barang.id_satuan
      ORDER BY nama_barang ASC";
      } else {
      $query = "SELECT barang.*, satuan.nama_satuan FROM barang
      INNER JOIN satuan ON satuan.id_satuan = barang.id_satuan
      WHERE barang.id_barang = '{$id}'";
      }
      $result = $this->db->query($query);

      $data = $result->result_array();

      return $data;

      Hapus
    3. error nya kayak gimana, untuk join + ada parameter nya pake kayak gini aja

      function getData($id = null) {
      if($id == null){
      $result = $this->db->query("SELECT barang.*, satuan.nama_satuan
      FROM barang
      INNER JOIN satuan ON satuan.id_satuan = barang.id_satuan
      ORDER BY barang.nama_barang ASC");
      } else {
      $result = $this->db->query("SELECT barang.*, satuan.nama_satuan
      FROM barang
      INNER JOIN satuan ON satuan.id_satuan = barang.id_satuan
      WHERE barang.id_barang = ?", array($id)); // parameter $id di escape, biar aman dari SQL Injection
      }

      // kemungkinan error kalo ternyata g ada datanya, jd d cek dulu
      return ($result->num_rows() > 0)? $result->result_array() : null;
      }

      Hapus
    4. terima kasih gan sudah menjawab pertanyaan saya , saya coba dulu :)

      Hapus