lebih baik semua orang tau

Wednesday, October 18, 2017

PHP - Mengambil data dari database yang berbeda

Pernahkah teman-teman IT mengalami kasus dimana kita harus mengambil data dari sebuah database yang berbeda lokasi namun web server kita tidak memiliki modul untuk konek ke database tersebut. Biasanya terjadi apabila kita memiliki website pada pihak ketiga tapi hanya support pada database bawaan.

Bisa saja kita membuat sebuah web service agar dengan mengakses link web service tersebut kita bisa mengambil data yang dibutuhkan. Tapi ternyata ada cara lain yang bisa kita gunakan untuk mengambil data dan tidak seperti web service karena kelemahan web service yang tidak memiliki authetifikasi bisa dengan mudah diakses dari browser asal kita mengetahui linknya.  Namun cara yang satu ini saya rasa lebih aman dan lebih mudah

Kita bisa mengambil data dengan menggunkan fungsi bawaan PHP bernama file_get_contents(), ini merupakan fungsi yang sama seperti saat kita mengambil data pada fungsi fopen() tapi berbeda kebutuhan.

Contoh penulisan dari fungsi tersebut adalah seperti berikut:


   $url = 'contoh.php'; /* berisi link di lokasi server database*/
   $get_file= file_get_contents($url,false);
   print $get_file;


Potongan script diatas menjelaskan bahwa kita meminta ke server untuk mengambil data dari apa yang ditulis pada file contoh.php yang sebelumnya dijalankan terlebih dahulu pada server dimana ia ditanam. Jadi yang dikirim dari server bukan apa yang ditulis pada contoh.php, tapi hasil dari menjalankan contoh.php pada server, misal pada contoh.php ditulis get_mahasiswa(), maka yang akan dikirim adalah data mahasiswa bukan script get_mahasiswa().

Bagaimana jika kita akan menambahkan variable pada data yang akan diminta, misal kita akan mencari sebuah NIM atau nama? maka kita harus menentukan variabel tersebut, bisa diambil dari GET atau POST.

Contoh penulisan scriptnya :

      $postdata = http_build_query(
                array(
                    'var1' => $_POST['data']
                )
               );
   $opts = array('http' =>
            array(
             'method'  => 'POST',
             'header'  => 'Content-type: application/x-www-form-urlencoded',
             'content' => $postdata
             )
           );


           $context  = stream_context_create($opts);
   $url = 'contoh.php';
   $get_file= file_get_contents($url,false,$context);
   print $get_file;


Perbedaan dari script default adalah penambahan stream-context untuk mengambil data variabel yang sudah disimpan sebelumnya dan dikirim ke url yang ada.

Dengan cara diatas diharapkan dapat membantu teman-teman yang mengalami kesulitan dalam mengambil data dari database yang berbeda server.
Share:

0 comments:

Post a Comment

Bagikan Saja

Search This Blog

Blog Archive