Page Nav

HIDE

Grid

GRID_STYLE

Breaking News

latest

Penerapan Koneksi PHP ke Database MySQL

Telah dijelaskan bahwa koneksi ke database merupakan salah satu fitur PHP yang paling sering digunakan. Apalagi PHP juga telah menyediakan ...


Telah dijelaskan bahwa koneksi ke database merupakan salah satu fitur PHP yang paling sering digunakan. Apalagi PHP juga telah menyediakan fungsi-fungsi built in yang mendukung koneksi database ke MySQL server. Nah, setelah Anda sedikit banyak tahu tentang MySQL, kini saatnya untuk menerapkan pengetahuan tersebut untuk membuat aplikasi web database dengan PHP dan MySQL.
Untuk keperluan contoh dan latihan, kita akan membuat sebuah database dengan MySQL. Buatlah sebuah database dengan nama datakontak sebagai berikut:
mysql> create database datakontak;
Pilihlah database tersebut sebagai database aktif.
mysql> use datakontak;
Buatlah sebuah tabel baru dengan nama tbl_kontak sebagai berikut:
mysql> create table tbl_kontak(
-> nama varchar(20),
-> alamat varchar(30),
-> telpon varchar(12),
-> email varchar(30),
-> tgl_lahir (date);
Tabel ini adalah contoh suatu tabel daftar nama kontak. Isikan tabel tersebut dengan data-data yang terdapat pada tabel di bawah ini:
Tabel Kotak : Record-record untuk tbl_kontak
nama alamat telpon email tgl_lahir
Anton Jl. Angsa 1 123456 anton@anton.com 1975-01-01
Betty Jl. Belimbing 2 234567 betty@betty.net 1980-02-02
Charlie Jl. Cakra 3 345678 charlie@charlie.org 1974-03-03
Diana Jl. Durian 4 456789 diana@diana.tv 1979-04-04
Enggar Jl. Elang 5 567891 enggar@enggar.info 1982-05-05
Fifi Jl. Flamengo 6 678912 fifi@fifi.biz 1977-06-06
Gina Jl. Gelora 7 789123 gina@gina.com 1973-07-07
Kemudian buatlah sebuah file teks yang berisi teks sebagai berikut:
insert into tbl_kontak values ('Anton','Jl. Angsa 1','123456',' anton@anton.com','1975-01-01');
insert into tbl_kontak values ('Betty','Jl. Belimbing 2','234567',' betty@betty.net','1980-02-02');
insert into tbl_kontak values ('Charlie','Jl. Cakra 3','345678',' charlie@charlie.org','1974-03-03');
insert into tbl_kontak values ('Diana','Jl. Durian 4','456789',' diana@diana.tv','1979-04-04');
insert into tbl_kontak values ('Enggar','Jl. Elang 5','567891',' enggar@enggar.info','1982-05-05');
insert into tbl_kontak values ('Fifi','Jl. Flamengo 6','678912',' fifi@fifi.biz','1977-06-06');
insert into tbl_kontak values ('Gina','Jl. Gelora 7','789123',' gina@gina.com','1973-07-07'); Simpanlah file teks tersebut dengan nama misalnya tbl_kontak.sql, lalu jalankan perintah mysql dari prompt/shell sebagai berikut:
# mysql datakontak < tbl_kontak.sql
atau
c:\mysql\bin> mysql datakontak < tbl_kontak.sql
Untuk memeriksa apakah pengisian data tersebut berhasil, maka buatlah query sebagai berikut:
myqsl> use datakontak;
mysql> select * from tbl_kontak;
Hasil yang diberikan seharusnya akan sama persis dengan yang terlihat pada Tabel Kontak.
Nah, sekarang kita masuk ke aplikasi PHP yang akan mengakses database tersebut. Latihan pertama yang diberikan adalah mengakses atau melakukan koneksi ke server MySQL, mengambil query, dan menampilkan query tersebut ke halaman web.
Untuk melakukan koneksi ke database MySQL digunakan fungsi mysql_connect(). Fungsi ini merupakan jembatan antara aplikasi PHP dengan database MySQL. Sintaksnya adalah sebagai berikut:
mysql_connect(host, user, password)
Server adalah nama server yang merupakan host dari MySQL server, sedangkan user dan password adalah user dan password MySQL. Contoh:
$conn = mysql_connect('localhost','root','root')
Setelah jembatan itu terbentuk, berikutnya adalah memilih database mana yang akan digunakan dalam aplikasi PHP. Fungsi yang digunakan adalah mysql_select_db(). Sintaksnya adalah sebagai berikut:
mysql_select_db(namadatabase[,koneksi])
Parameter koneksi adalah variabel yang menyimpan koneksi ke MySQL server yang dilakukan oleh fungsi mysql_connect(). Contoh:
mysql_select_db('datakontak',$conn)
Berikutnya adalah mengambil query dari database yang telah terkoneksi tersebut. Fungsi yang digunakan adalah mysql_query(). Sintaksnya adalah sebagai berikut:
mysql_query(perintahsql[,koneksi])
Contoh:
$qry = mysql_query('select * from tbl_kontak',$conn)
Yang terakhir adalah menampilkan hasil query tersebut ke halaman web. Fungsi yang digunakan adalah mysql_fetch_array(). Fungsi ini digunakan untuk memasukkan hasil query ke dalam array assosiatif dan/atau array numeris. Dalam bentuk variabel array, tentunya record-record tersebut kini bisa ditampilkan. Sintaks dari fungsi mysql_fetch_array() adalah sebagai berikut:
mysql_fetch_array(query)
Query adalah hasil query yang didapatkan dari fungsi mysql_query(). Contoh:
$row = mysql_fetch_array($qry)
Variabel $row inilah yang merupakan array yang menyimpan hasil query. Dengan demikian untuk menampilkan field-field pada query Anda dapat menggunakan $row[0], $row[1], dan seterusnya, atau $row['namafield1'], $row['namafield2'], dan seterusnya. Yang harus diperhatikan adalah bagaimana caranya kita menampilkan query tersebut sehingga sedap dipandang.
Berikut ini adalah contoh skrip bagaimana mengakses tabel tbl_kontak dari database datakontak yang telah kita buat di awal artikel ini.
<HTML>
<HEAD>
<TITLE> Database Data Kontak </TITLE>
</HEAD>
<BODY>
<?php
$host = “localhost”;
$user = “root”;
$passwd = “root”;
$db = “datakontak”;
$sql = “select * from tbl_kontak”;
$conn = mysql_connect($host,$user,$passwd);
mysql_select_db($db);
$qry = mysql_query($sql);
?>
<TABLE BORDER=1>
<TR>
<TD BGCOLOR=#f32142> Nama </TD>
<TD BGCOLOR=#f32142> Alamat </TD>
<TD BGCOLOR=#f32142> Telpon </TD>
<TD BGCOLOR=#f32142> Email </TD>
<TD BGCOLOR=#f32142> Tanggal Lahir </TD>
</TR>
<?php while ($row = mysql_fetch_array($qry)) { ?>
<TR>
<TD BGCOLOR=#f7efde> <?=$row['nama']?> </TD>
<TD BGCOLOR=#f7efde> <?=$row['alamat']?> </TD>
<TD BGCOLOR=#f7efde> <?=$row['telpon']?> </TD>
<TD BGCOLOR=#f7efde> <?=$row['email']?> </TD>
<TD BGCOLOR=#f7efde> <?=$row['tgl_lahir']?> </TD>
</TR>
<?php } ?>
</TABLE>
</BODY>
</HTML>
Simpanlah skrip tersebut dengan nama data-kontak.php.
-----


Pada artikel sebelumnya kita telah belajar menerapkan koneksi PHP ke MySQL dan menampilkan data-data yang diambil ke browser. Nah, sekarang kita akan belajar sesuatu yang lebih "advanced".
Pada pembahasan yang diberikan artikel sebelumnya, contoh-contoh skrip yang diberikan masih "polos", tidak ada perangkap kesalahan sama sekali. Padahal perangkap kesalahan ini merupakan hal yang sangat vital karena koneksi ke MySQL ini cukup rentan terhadap kesalahan. Tentu saja hal ini masuk akal karena melibatkan dua software (yaitu PHP dan MySQL) yang melakukan kerjasama. Dalam hubungan antar dua orang manusia pun seringkali terjadi kesalahpahaman bukan?
Untuk itu kali ini kita akan memoles sedikit contoh-contoh yang diberikan pada artikel sebelumnya dengan menambahkan perangkap kesalahan agar jika terjadi kesalahan kita tahu bagaimana untuk memperbaikinya.
Perangkap kesalahan yang akan digunakan adalah operator kontrol error. Sintaks penggunaan operator kontrol error ini adalah dengan menambahkan karakter at (@) di depan suatu fungsi kemudian diikuti dengan pernyataan "or die(pesan)".
Berikut adalah contohnya penggunaan operator kontrol error tersebut.
<HTML>
<HEAD>
<TITLE> Kontrol Error </TITLE>
</HEAD>
<BODY>
<?php $x = M_PI; ?>
y adalah akar dari x <br />
jika x = <?=$x?> maka y = 
<?php
$msg = "Terdapat error pada operasi ini";
$y = @sqrt($x) or
    die($msg);
echo $y;
?>
</BODY>
</HTML>
Jika skrip tersebut dijalankan, maka browser akan memberikan hasil sebagai berikut:
y adalah akar dari x
jika x = 3.1415926535898 maka y = 1.7724538509055
Sekarang sengaja kita buat suatu kesalahan, misalnya M_PI ditulis dengan MPI, maka browser akan memberikan hasil sebagai berikut:
y adalah akar dari x
jika x = MPI maka y = "Terdapat error pada operasi ini"
Kini kita terapkan operator kontrol error tersebut pada contoh skrip pada artikel sebelumnya.
<HTML>
<HEAD>
<TITLE> Database </TITLE>
</HEAD>
<BODY>
<?php
$host = “localhost”;
$user = “root”;
$passwd = “root”;
$db = “datakontak”;
$sql = “select * from tbl_kontak”;
$conn = @mysql_connect($host,$user,$passwd) or
    die("Koneksi ke database gagal");
mysql_select_db($db);
$qry = mysql_query($sql) or
    die("Query database salah");
?>
<TABLE BORDER=1>
<TR>
    <TD BGCOLOR=#f32142> Nama </TD>
    <TD BGCOLOR=#f32142> Alamat </TD>
    <TD BGCOLOR=#f32142> Telpon </TD>
    <TD BGCOLOR=#f32142> Email </TD>
    <TD BGCOLOR=#f32142> Tanggal Lahir </TD>
</TR>
<?php while ($row = mysql_fetch_array($qry)) {?>
<TR>
    <TD BGCOLOR=#f7efde> <?=$row['nama']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['alamat']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['telpon']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['email']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['tgl_lahir']?> </TD>
</TR>
<?php } ?>
</TABLE>
</BODY>
</HTML>

Setelah skrip ini kita perbaharui seperti di atas, maka jika terdapat kesalahan, browser akan memberikan pesan kesalahan. Jika koneksi gagal, maka akan muncul pesan "Koneksi ke database gagal" dan jika pernyataan sql yang salah maka akan muncul pesan "Query database salah".
Namun kadang-kadang pesan seperti ini masih belum cukup. Jika koneksi gagal, apa penyebab kegagalannya? Jika query salah, dimana letak kesalahannya?
Untuk PHP menyediakan suatu fungsi lagi bernama mysql_error(). Fungsi ini akan menghasilkan suatu teks yang berisi kesalahan yang terjadi. Dengan demikian pesan kesalahan akan menjadi lebih jelas dan kesalahan jadi lebih mudah untuk diperbaiki. Kita revisi lagi contoh skrip di atas menjadi sebagai berikut:

<HTML>
<HEAD>
<TITLE> Database </TITLE>
</HEAD>
<BODY>
<?php
$host = "localhost";
$user = "root";
$passwd = "";
$db = "datakontak";
$sql = "select * from tbl_kontak";
$conn = @mysql_connect($host,$user,$passwd) or
    die("Terdapat kesalahan koneksi, yaitu: " . mysql_error());
@mysql_select_db($db) or
    die("Terdapat kesalahan database, yaitu: " . mysql_error());
$qry = @mysql_query($sql) or
    die("Terdapat kesalahan query, yaitu: " . mysql_error());
?>

<TABLE BORDER=1>
<TR>
    <TD BGCOLOR=#f32142> Nama </TD>
    <TD BGCOLOR=#f32142> Alamat </TD>
    <TD BGCOLOR=#f32142> Telpon </TD>
    <TD BGCOLOR=#f32142> Email </TD>
    <TD BGCOLOR=#f32142> Tanggal Lahir </TD>
</TR>
<?php while ($row = mysql_fetch_array($qry)) { ?>
<TR>
    <TD BGCOLOR=#f7efde> <?=$row['nama']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['alamat']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['telpon']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['email']?> </TD>
    <TD BGCOLOR=#f7efde> <?=$row['tgl_lahir']?> </TD>
</TR>
<?php } ?>
</TABLE>
</BODY>
</HTML>
Nah, sekarang pesan kesalahan mejadi lebih jelas. Sekarang kita sengaja buat kesalahan pada skrip tersebut. Misalnya baris yang bertuliskan $db = "datakontak"; kita ganti menjadi $db = "datacontact"; (kontak menjadi contact). Peringatan yang muncul pada browser adalah:
Terdapat kesalahan database, yaitu: Unknown database 'datacontact'
Dengan demikian kita langsung tahu bahwa yang salah adalah penulisan nama database yang seharusnya datakontak tetapi ditulis datacontact.
Kita coba lagi dengan kesalahan lain. Misalnya pernyataan sql diganti dari "select * from tbl_kontak" menjadi "select * from tab_kontak" (tbl_kontak diganti tab_kontak). Browser akan memberikan pesan sebagai berikut:
Terdapat kesalahan, yaitu: Table 'datakontak.tab_kontak' doesn't exist
Dengan demikian kita langsung tahu bahwa yang salah nama tabel yang dipilih, sehingga kesalahan lebih mudah dilacak, selamat mencoba dan belajar. Pada artikel selanjutnya akan memberikan contoh-contoh aplikasi kecil dengan PHP dan database dengan MySQL.


1 komentar

  1. kita juga punya nih jurnal mengenai Database Mysql silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/1054/1/50406179.pdf

    BalasHapus