Minggu, 31 Mei 2015

FUNGSI PROSEDUR


 INSERT
INSERT adalah perinta untuk melakukan input data kedalam tabel. Syntax dasar insert dapat dilihat seperti di bawah ini:
INSERT into namaTabel(field1,field2,field3,...) VALUES('nilai 1','nilai 2','nilai 3',...)
Sekedar mengingatkan saja, karena saya pribadi pernah mengalami suatu hal yang mulanya bikin saya bingung, dan kali ini akan saya coba share kepada sahabat AJN semuanya yakni seputar data yang di-insert kedalam tabel. Jadi, ketika kita melakukan insert data ke MySQL inputannya harus diperhatikkan dan perlu diparsing (difilter) untuk menjaga keamanan data. Istilah yang dikenal dari proses SQL query secara paksa (hack) adalah mysql inject. Sebagai contoh, kita tidak bisa meng-insert data yang mengandung petik satu kedalam tabel tanpa difilter. Untuk memfilter data yang diinput (kalo inputan ketikan bebas oleh user via input text atau textarea) adalah menggunakan fungsi mysql_real_escape_string($string). Dengan demikian data yang diinput menjadi aman dan terhindar dar injeksi.
Contoh :
<?php
$nis = $_POST['nis'];
$nama = mysql_real_escape_string($_POST['nama']);
$gender = $_POST['gender'];
$kelas = $_POST['kelas'];
mysql_query("INSERT into siswa(NIS,Nama,Gender,Kelas) VALUES('$nis','$nama','$gender','$kelas')");
?>
UPDATE
Berbeda halnya dengan SELECT, query update ini bekerja dibalik layar dan tidak menampilkan hasil apapun karena update bukanlah perintah tetapi merupakan proses. Untuk syntax update ini dapat dilihat di bawah ini
UPDATE namaTabel set field1='nilai baru field1', field2='nilai baru field2', field3='nilai baru field3',... [kondisi where]
Keterangan:field1,field2, field3, dst: nama field yang ingiin diupdate nilainya (disesuaikan dengan nama field pada tabel)kondisi where: sifatnya optional, namun bila tanpa kondisi semua data akan diupdate, jadi harap berhati-hati!
NB: harap diperhatikan.... dalam penggunaan query UPDATE ini saya sangat menganjurkan untuk memberikan kondisi. Kenapa demikian? Karena bila kita tidak mempersempit kondisi maka semua data akan ikut keupdate atau keubah. Bayangkan, bila kita mempunyai data sebanyak 2000 data, lalu kita ingin mengubah data ke 780, namun kita kelupaan memberikan kondisi where, maka yang terjadi adalah semua data (yang 2000 baris) itu akan semuanya keupdate. Contoh detailnya adalah ketika tabel siswa sudah lengkap semua mulai kelas X sampai kelas XII. Lalu data ke 100 ternyata salah, ditabel kelasnya adalah XI-IPA-1, padahal harusnya XI-BAHASA, maka yang kita lakukan adalah membuat script seperti di bawah ini!
<?php
mysql_query("UPDATE siswa set kelas='XI-BAHASA' where NIS='13141159");
mysql_query("UPDATE siswa set kelas='XI-BAHASA'");
?>
Query pertama adalah query yang benar, dimana data yang NIS-nya 13141159 akan diubah data kelasnya menjadi XI-BAHASA. Adapun query kedua adalah query yang fatal salahnya, kenapa? bila query tersebut dijalankan maka seluruh data di tabel siswa kelasnya akan menjadi 'XI-BAHASA' meskipun datanya 2000 data siswa. Jadi, kembali saya ingatkan, harap berhati-hati dengan query UPDATE. Kasus ini masih saja terjadi, mungkin akibat kurang jeli dalam mengecek, atau terlalu terburu-buru atau penyebab lainnya. Yang pasti UPDATE tanpa where adalah merubah semua data yang ada di tabel tersebut. Kecuali kalau kita memang menginginkan update untuk seluruh data pada tabel.
DELETE
Untuk query DELETE ini kasusnya sama dengan UPDATE, namun yang membedakan adalah fungsinya. DELETE pada query MySQL berfungsi untuk menghapus data (satu baris atau lebih) jika where yang diberikan adalah spesifik, dan tentu akan menghapus semua data di tabel jika tidak ditambahkan where. Syntax DELETE ini adalah seperti berikut
DELETE from namaTabel [kondisi where]
Contoh :
<?php
mysql_query("DELETE from siswa where NIS='13141159");
mysql_query("DELETE from siswa where kelas='XI-BAHASA'");
mysql_query("DELETE from siswa");
?>
Query pertama akan menghapus data yang NIS-nya 13141159 saja (1 baris), adapun untuk query kedua adalah menghapus semua data yang kelasnya adalah XI-BAHASA (beberapa baris data siswa). Sedangkan query ketiga akan menghapus semua data siswa (tabel jadi kosong).

0 komentar:

Posting Komentar