2012/12/14

Penerapan Koneksi PHP ke Database MySQL

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.

ليست هناك تعليقات:

إرسال تعليق