My Sql Debuging
Nah… berikut ini, saya akan coba paparkan tips bagaimana teknik melacak kesalahan atau istilah kerennya dalam programming adalah ‘debugging’ pada script PHP yang diintegrasikan dengan MySQL.
Untuk mempermudah penjelasan, saya akan coba tuangkan ke dalam studi kasus. Studi kasusnya lagi-lagi terkait dengan data mahasiswa.
Misalkan kita memiliki tabel untuk menyimpan data mahasiswa seperti berikut ini:
2. nim varchar(10),3. namamhs varchar(30),4. alamat text,5. sex varchar(10),6. PRIMARY KEY (nim)7.)Selanjutnya misalkan data yang tersimpan dalam tabel di atas adalah seperti di bawah ini
1.INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA', 'COLOMADU', 'L');2.INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI', 'KUDUS', 'P');3.INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.', 'COLOMADU', 'L');4.INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH', 'COLOMADU', 'P');5.INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM', 'COLOMADU', 'L');01.<?php02. 03.// koneksi ke mysql04.mysql_connect("dbhost", "dbuser", "dbpass");05.mysql_select_db("dbname");06. 07.// query SQL untuk menampilkan semua data mhs08.$query = "SELECT * FROM mahasiswa";09.$hasil = mysql_query($query);10. 11.// menampilkan hasil query ke dalam bentuk tabel12.echo "<table border='1'>";13.echo "<tr><td>NIM</td><td>Nama Mhs</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";14.while ($data = mysql_fetch_array($hasil))15.{16. echo "<tr><td>".$data['Nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";17.}18.echo "</table>";19.?>Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in F:\mhs.php on line 4
Maksud dari error di atas adalah koneksi ke mysql dengan menggunakan user dengan nama ‘root’ gagal dilakukan. Nah.. untuk mengatasinya: coba cek apakah nama usernya benar, atau mungkin passwordnya yang salah.
OK… andaikan setelah username dan password untuk koneksinya diperbaiki dengan benar. Selanjutnya script bisa dijalankan kembali. Setelah dijalankan mungkin muncul error seperti di bawah ini
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\mhs.php on line 14
Error tersebut muncul dikarenakan penulisan query SQL yang salah atau tidak memenenuhi aturan yang benar. Pada script di atas, query SQL yang digunakan adalah:
1.SELECT * FROM mahasiswaNamun.. bagaimana bila query SQL nya panjang dan kita sudah yakin bahwa query yang kita buat ini adalah betul? He..3x jangan sok yakin dulu. Komputer tidak akan pernah berkhianat pada programmer. Memang.. query yang dijalankan dalam script PHP tidak akan terlihat kesalahannya. Untuk melihat kesalahan querynya, satu-satunya cara adalah menjalankan query tersebut ke dalam phpMyAdmin atau Navicat.
Trus.. langkahnya bagaimana? Langkahnya adalah tampilkan query SQL yang akan dijalankan ke dalam halaman web, dengan cara meng-echo-kan querynya (perhatikan perintah
echo $query; pada baris ke-9 berikut ini)01.<?php02. 03.// koneksi ke mysql04.mysql_connect("dbhost", "dbuser", "dbpass");05.mysql_select_db("dbname");06. 07.// query SQL untuk menampilkan semua data mhs08.$query = "SELECT * FROM mahasiswa";09.echo $query;10.$hasil = mysql_query($query);11. 12.// menampilkan hasil query ke dalam bentuk tabel13.echo "<table border='1'>";14.echo "<tr><td>NIM</td><td>Nama Mhs</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";15.while ($data = mysql_fetch_array($hasil))16.{17. echo "<tr><td>".$data['Nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";18.}19.echo "</table>";20.?>OK… setelah diperbaiki querynya, maka akan diperoleh script berikut ini
01.<?php02. 03.// koneksi ke mysql04.mysql_connect("dbhost", "dbuser", "dbpass");05.mysql_select_db("dbname");06. 07.// query SQL untuk menampilkan semua data mhs08.$query = "SELECT * FROM mhs";09.$hasil = mysql_query($query);10. 11.// menampilkan hasil query ke dalam bentuk tabel12.echo "<table border='1'>";13.echo "<tr><td>NIM</td><td>Nama Mhs</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";14.while ($data = mysql_fetch_array($hasil))15.{16. echo "<tr><td>".$data['Nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";17.}18.echo "</table>";19.?>
But…. lho kok data NIM nya tidak muncul? Waduh… kenapa ini, padahal data yang lain muncul? Nah… ini disebabkan karena penulisan array yang salah terkait dengan nama fieldnya.
Perhatikan script di atas. Untuk menampilkan data pada field ‘nim’, kita menggunakan perintah
$data['Nim'] (menggunakan huruf N besar). Padahal pada tabel yang kita buat di atas menggunakan huruf N kecil (‘nim’). Hal inilah yang menyebabkan permasalahannya.Apabila Anda menggunakan
mysql_fetch_array() untuk membaca record hasil query, maka pastikan nama elemen arraynya sama dengan nama fieldnya, baik dalam penulisan nya maupun besar kecilnya huruf harus sama.Setelah diperbaiki, maka beres dah… semua data yang tampil sesuai harapan.
OK.. mudah-mudahan artikel ini berguna bagi Anda semuanya yang sering dipusingkan dengan kesalahan dalam script PHP + MySQL nya. Harapan saya.. mudah-mudahan pula, Anda bisa mencari kesalahan dalam script Anda sendiri dan memperbaikinya tanpa meminta bantuan orang lain lagi





0 komentar:
Posting Komentar