Anda di halaman 1dari 4

Implementasi Koneksi PHP ke MySQL (bagian 2 - habis)

Minggu lalu Anda 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 minggu lalu, 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 contoh-contoh yang diberikan minggu lalu 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>
<?
$x = M_PI;
?>

y adalah akar dari x <BR>


jika x = <?=$x?> maka y =

<?
$pesan = "Ada yang salah pada operasi ini";
$y = @sqrt($x) or
die($pesan);
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 = "Ada yang salah pada operasi ini"

Kini kita terapkan operator kontrol error tersebut pada contoh skrip minggu lalu.
<HTML>
<HEAD>
<TITLE> Database </TITLE>
</HEAD>

<BODY>
<?
$host = “localhost”;
$user = “root”;
$pwd = “rahasia”;
$db = “pcplus”;
$sql = “select * from table1”;
$conn = @mysql_connect($host,$user,$pwd) or
die("Koneksi gagal");
mysql_select_db($db);
$qry = mysql_query($sql) or
die("Query 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>
<?
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['tgllhr']?> </TD>
</TR>

<?
}
?>

</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 gagal" dan jika
pernyataan sql yang salah maka akan muncul pesan "Query 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>
<?
$host = "localhost";
$user = "root";
$pwd = "";
$db = "pcplus";
$sql = "select * from table1";
$conn = @mysql_connect($host,$user,$pwd) or
die("Terdapat kesalahan, yaitu: " . mysql_error());
@mysql_select_db($db) or
die("Terdapat kesalahan, yaitu: " . mysql_error());
$qry = @mysql_query($sql) or
die("Terdapat kesalahan, 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>
<?
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['tgllhr']?> </TD>
</TR>

<?
}
?>

</TABLE>
</BODY>
</HTML>
Nah, sekarang pesan kesalahan mejadi lebih jelas. Sekarang kita sengaja buat kesalahan pada
skrip tersebut. Misalnya baris yang bertuliskan $db = "pcplus"; kita ganti menjadi $db = "pcpluss";
(ada dua huruf s). Peringatan yang muncul pada browser adalah:

Terdapat kesalahan, yaitu: Unknown database 'pcpluss'

Dengan demikian kita langsung tahu bahwa yang salah adalah penulisan nama database yang
seharusnya pcplus tetapi ditulis pcpluss.
Kita coba lagi dengan kesalahan lain. Misalnya pernyataan sql diganti dari "select * from
table1" menjadi "select * from tabel1" (table1 diganti tabel1). Browser akan memberikan pesan sebagai
berikut:

Terdapat kesalahan, yaitu: Table 'pcplus.tabel1' doesn't exist

Dengan demikian kita langsung tahu bahwa yang salah nama tabel yang dipilih, sehingga
kesalahan lebih mudah dilacak.
Minggu depan PCplus akan memberikan contoh-contoh aplikasi database dengan PHP dan
MySQL.