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>
<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>
</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>
<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>
<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>
<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".
</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>
<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>
<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>
<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>
</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:
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.Terdapat kesalahan, yaitu: Table 'datakontak.tab_kontak' doesn't exist
0 komentar:
Posting Komentar