Saturday, September 15, 2012

How MySQL and PHP Work Together?

Bagaimana MySQL dan PHP Bekerjasama?

Kita bisa berinteraksi dengan database dengan mengirimkan pesan (perintah) ke Server MySQL. Pesan atau nama lainnya adalah Perintah SQL, suatu standar bahasa komputer yang dipahami oleh Database Manajement System (DBMS).

PHP tidak mengerti dengan bahasa SQL, tapi itu semua tidak perlu. Kenapa? Karena PHP telah membangun/membuat koneksi dengan MySQL Server dan mengirim perintah melalui koneksi tersebut.

MySQL Server akan menerjemahkan perintah SQL, mengikuti perintahnya, dan mengembalikan hasil perintah berupa keadaan sebagaimana yang telah diperintahkan. Atau.. kalau ada perintah yang salah/keliru maka akan ditampilkan pesan error yang menyatakan kesalahan tersebut.

PHP meyediakan fungsi-fungsi yang membuat hubungan dengan MySQL menjadi sangat mudah. Kita bisa menggunakan fungsi-fungsi PHP untuk mengirimkan perintah-perintah SQL (SQL Query) ke database.

Kita tidak perlu mengerti bagaimana detail koneksinya dengan MySQL, PHP sudah menangani detailnya. Yang perlu kita ketahui hanyalah perintah-perintah SQLnya dan bagaimana menggunakan fungsi-fungsi PHP.

Fungsi-fungsi yang berhubungan dengan MySQL

PHP menyediakan 2 set fungsi untuk berkomunikasi dengan MySQL - yaitu fungsi mysql dan mysqli (MySQL Improved). Yang mana, fungsi yang kita gunakan tergantung dari versi dari PHP atau MySQL yang kita gunakan.

Fungsi mysqli ditambahkan sejak PHP 5 dan digunakan dengan MySQL versi 4 ke atas. Kalau kamu menggunakan Perusahaan Web hosting, kamu perlu tahu apakah dia menyediakan PHP 5 dan MySQL versi ke berapa, dan apakah fungsi mysqli bisa untuk digunakan.

Pada tutorial ini, kita menggunakan PHP 5 atau 6, MySQL 5 dan fungsi mysqli. Kalau web hosting anda tidak menyediakan fungsi mysqli maka anda perlu mengganti script anda dengan mysql bukan mysqli.

Perbedaan antara mysql dan mysqli akan saya bahas di kesempatan berikutnya.. :D

Berkomunikasi dengan MySQL

Cara Berkomunikasi dengan MySQL melibatkan beberapa langkah:

1. Koneksi ke MySQL server
2. Mengirimkan Query SQL (Perintah-perintah SQL)

So, mari kita bahas satu per satu :)

1. Koneksi ke MySQL Server

Sebelum kita bisa menyimpan or mengambil data, kita harus melakukan koneksi ke database. KIta tidak perlu mengetahui detail koneksinya, karena PHPlah yang menanganinya. Yang perlu kita ketahui adalah nama database dan dimana lokasi databasenya. Bayangkan saja koneksi database itu seperti koneksi telepon.
Kita tidak perlu tahu detail mengenai bagimana koneksi dibuat - yaitu, bagaimana suara bisa berpindah dari telepon kamu ke telepon lainnya - yang perlu kamu tahu hanya kode area dan nomer telponnya. Perusahaan telekomunikasinya lah yang menangani detailnya.

Untuk berkoneksi dengan MySQl Server, kamu harus tahu nama komputer dimana database berada, dan username / account MySQL dan passwordnya. Untuk semua perintah-perintah SQL (Query), kamu juga harus tahu nama database yang kamu butuhkan.

Untuk membuka koneksi, gunakan fungsi mysqli_connect

$koneksi=mysqli_connect("host", "account", "password", "dbname") or die("message");

Isi pada informasi berikut:

*host: Nama komputer dimana MySQL diinstal - contohnya, database.host.com. Sedangkan apabila MySQL berada pada komputer yang sama dengan web anda (komputer anda) makan gunakan localhost sebagai nama komputernya. Bila anda membiarkannya kosong saja (""), PHP akan mengasumsikannya sebagai localhost.

*account: Nama dari MySQL account yang valid. Contoh kalo yang di komputer kita sendiri biasanya kita gunakan root.

*password: Passwordnya MySQL berhubungan dengan account atau usernamenya. kalau memang passwordnya tidak ada, maka biarkan kosong, jangan ketikkan apapun antara: ""

*dbname: nama database dimana kita ingin berkomunikasi. Parameter ini sangat optional - anda bisa memilih databasenya nanti.

note: kalau anda menggunakan fungsi mysql (bukan mysqli) maka anda tidak bisa memilih database pada fungsi connect. Tapi digunakanlah fungsi terpisah yaitu -- mysql_select_db - untuk memilih database.

*message: Pesan yang dikirim ke browser apabila koneksi gagal. Koneksi gagal bila jaringan sedang down, atau MySQL Servernya lagi tidak running. Bisa juga karena informasi yang diinputkan pada parameter koneksi tidak benar -- sebagai contoh, bila salah dalam penulisan username atau password.

Dengan perintah tersebut di atas, mysqli_connect akan berusaha membuka koneksi ke komputer yang dituju, menggunakan account/username dan password yang diisikan.

Apabila koneksi gagal, maka script akan berhenti dijalankan dan mengirimkan pesan ke browser.

Contoh berikut adalah perintah koneksi ke MySQL Server pada local komputer dengan account MySQL yang dinamakan Yurike dengan tidak menggunakan password, menuju database dengan nama Perpus:

$connnect = mysqli_connect("localhost", "Yurike", "", "Perpus" ) or die("Tidak bisa terkoneksi ke database server");

Untuk alasan security atau keamanan, anda harus meletakkan informasi untuk koneksi ke variabel dan menggunakan variabel tersebut pada statement/pernyataan koneksi seperti berikut:

$host="localhost";
$user="Yurike";
$password="";
$dbname="";
$connect=mysqli_connect($host, $user, $password, $dbname) or die("Tidak bisa terkoneksi ke database server.");

Koneksi akan terus dijalankan atau terhubung sampai anda menutupnya atau sampai script berakhir. Anda bisa menutup koneksi dengan pernyataan berikut:

mysqli_close($namakoneksinya);

Misalnya mysqli_close($connect);

2. Mengirimkan Perintah SQL (SQL Query)

Setelah anda membuka koneksi ke Server MySQL, anda bisa mengirimkan perintah-perintah atau Query SQL.

Query adalah perintah kepada MySQL Server untuk merubah strukur dari database, mengisikan data, mengedit data, atau menampilkan data dari database.

Untuk berinteraksi dengan database, letakkan Query SQL anda ke sebuah variabel dan mengirimnya ke MySQL Server dengan fungsi mysqli_query, seperti contoh berikut:

$query="select * from siswa";

$result=mysqli_query($connect, $query) or die("Tidak bisa menjalankan query");

Query tersebut hanya dieksekusi pada database yang terpilih pada koneksi yang sudah ditentukan.

Variabel $result menyimpan informasi hasil dari eksekusi query. Informasinya tergantung apakah query berhasil mengambil informasi berupa data dari database atau tidak.

No comments:

Post a Comment